Grundlegende Ideen:
Schreiben Sie ein unabhängiges Programm für jede Funktion, Programmseite
Lassen Sie Kunden auf Ihrer Serverseite so wenig Informationen wie möglich wissen
Verwenden Sie die Idee von "Kunden sollten dies nicht schreiben", um über das Problem nachzudenken
Denken Sie an so viele Dinge wie möglich, die nicht passieren können
1. Mögliche Probleme mit interaktiven dynamischen Webseiten
1.1 Formyptyp -Interaktion
1.1.1 Einführung in Konzepte
Wenn wir mit den Besuchern interagieren, dem am häufigsten verwendeten Formular (nach/GET/Put -Methode). Obwohl es sehr bequem ist, treten dadurch viele Probleme auf.
Die Eingangsflagge in Form des Formulars
Wird verwendet, um Informationen zu akzeptieren, die von Benutzern eingegeben wurden, wie z.
Blockiert einige Sicherheitsmaschinen
Sicherheitszertifizierung umgehen. Wenn Sie beispielsweise eine Standard -HTML -Anweisung oder eine JavaScript -Anweisung eingeben, wird das Ausgabeergebnis geändert, und die Eingabe einer Standard -HTML -Anweisung im Eingabefeld wird eingeben
Welche Ergebnisse werden erzielt? In einem Nachrichtenbuch geben wir beispielsweise den Inhalt unserer Nachricht ein: <fontSize = 10> Hallo! </font> Wenn in Ihrem Programm keinen Bildschirm enthalten ist
Block HTML -Anweisungen, dann wird die Schriftart "Hallo" geändert
Größe. Das Ändern der Schriftgröße und der Aufkleber im Nachrichtenbuch ist manchmal keine schlechte Sache, aber es kann das Nachrichtenbuch lebendig machen. Aber wenn Sie es in das Eingabefeld schreiben
JavaScripts tote Schleife wie:
<Aherf = "http: // monurl" onmouseover = "wob
Bewegen Sie einfach die Gäste
Wenn Sie die Maus auf "den ersten tausend spannenden" bewegen, stirbt der Browser des Benutzers aufgrund der toten Schleife.
1.1.2 wichtige Präventionspunkte
(1) FILTER Sonderzeichen
([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) //// 1/g;) ist das grundlegendste und wurde mehr als einmal an vielen Stellen erwähnt.
<scriptuanguage = "vbscript">
subbubotton_onclick
erm1.uusername.value = "" Dann
MSGBox "Ihr Name kann nicht leer sein!", 0+32, "Oh! Noch nicht möglich".
Form1.UUSERNAME.FOCUS
exitsub
Endif
efform1.upassword.value = "" Dann
MSGBox "Ihr Passwort kann nicht leer sein!", 0+32, "Oh! Noch nicht möglich".
Form1.Upassword.focus
exitsub
Endif
erm1.uusername.value = "" Dann
MSGBox "Ihr Name kann nicht leer sein!", 0+32, "Oh! Noch nicht möglich".
Form1.UUSERNAME.FOCUS
exitsub
Endif
Form1.Submit
Ende
</script>
Funktionisempty (Objname)
{
varstr = document.inputform [objname] .Value
vartmpstr = str.replace ([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) //// $ 1/g;, "")
vartmpstr = tmpstr.replace ([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g;, "")
return (tmpstr.length == 0)
}
Funktionscheck ()
{
tf = document.inputform
Fehler = ""
if (isempty ("username")) fehler+= "userername kann nicht leer sein./n";
if (isempty ("password")) fehler+= "Passwort kann nicht leer sein!/n"
if (fehler! = "")
Alarm (Fehler);
return (fehler == "")