Um ASP-Überlauf-Schwachstellen zu beheben, sollten wir eine umfassende Zeichenfilterung durchführen.
Eine davon besteht darin, sich als Mitglied anzumelden
. Der folgende Code dient zum Herausfiltern illegaler Zeichen im Benutzernamen.
<%
Benutzername=trim(request.form("Benutzername"))
userpws=trim(request.form("password"))
if username="" oder userpws="" oder Instr(username,"=")>0 oder Instr(username,"%")>0 oder Instr(username,chr(32))>0 oder Instr(username," ?")>0 oder Instr(Benutzername,"&")>0 oder Instr(Benutzername,";")>0 oder Instr(Benutzername,",")>0 oder Instr(Benutzername,"'")>0 oder Instr(Benutzername,“,)>0 oder Instr(Benutzername,chr(34))>0 oder Instr(Benutzername,chr(9))>0 oder Instr(Benutzername,“?)>0 oder Instr(Benutzername, "$")>0 dann
Response.write(''Bitte geben Sie den Benutzernamen und das Passwort korrekt ein'')
Antwort.Ende
Ende wenn
%>
Es besteht auch eine Überlauf-Schwachstelle, die die Eingabe illegaler Zeichen über die Adressleiste beinhaltet. Wenn beispielsweise eine Seite newslist.asp und die andere newspage.asp ist,
übergeben wir den newsid-Parameter von newslist.asp an newspage.asp.
Beim Empfang von Parametern in newspage.asp verwenden wir im Allgemeinen nur:
<%
düsterer Newsid
newsid=request(''newsid'')
....................
%>
Um auf der sicheren Seite zu sein, sollten wir zumindest hinzufügen
<%
düsterer Newsid
newsid=tirm(request''id'')
wenn newsid='''' oder Instr(newsid,"'")>0 oder Instr(newsid,"%")>0 dann
Response.write(''Ungültiger Parameter'')
Antwort.Ende
%>
Was ich gesagt habe, sind im Wesentlichen die beiden oben genannten Punkte. Wenn es Mängel gibt, teilen Sie mir dies bitte mit.
Obwohl wir im INTERNET noch einige Lücken haben, kann die Eingabe einiger Codezeilen mehr die Sicherheit der Website erhöhen!
Eine einfache Möglichkeit, mit der Schwachstelle illegaler Zeichenüberläufe umzugehen, um Websites anzugreifen