Sicherheit: Präventionsstrategien es durch Scripting-Angriff



SQL-Injection-Schwachstellen im Netzwerk mithilfe von Angriff, JS-Script, HTML-Scripting-Attacken scheinen zu spielen mehr als kräftig. Einer nach dem anderen der vielen Standorte sind von solchen Angriffen geplagt, nicht wie die Host-Schwachstellen können sofort repariert werden, der Angriff aus dem Web, so dass wir in der Prävention oder Reparatur bringt, dass eine Menge Unannehmlichkeiten. Ein Webmaster ist die schmerzhafteste dieser. Wie stark Ihr Passwort an den Angreifer war schon immer vorhanden, aber wie können wir erreichen, wirkliche Sicherheit? Erstens, nicht vergessen und verknüpfen Sie Ihr Leben, zweitens Supermaster der PWD nur Sie wissen am besten, , drittens absolut notwendig, um Ihre Website-Programms zu verbessern. Aber wie können wir verbessern, wird es unser oberstes Ziel dieses Artikels sein.

Security, wie sie die Sicherheit tun? Willst Schutz ist notwendig zu wissen, wie sie sich gegenseitig angreifen. Viele Artikel werden geschrieben, um eine bestimmte Website zu erfassen, in der Tat, die Art und Weise ihrer Angriffe, sondern auch die folgenden:

1. Simple-Scripting-Angriff

Solche Angriffe sollten Mühe ist es langweilig. Zum Beispiel ****: alert (); so, weil der Filter ist nicht in der Nähe, was dem Angreifer nicht nur zur Verfügung, aber er kann störend auf den Zweck. Viele Websites präsentieren kostenlosen Service, oder das Programm auf ihrer eigenen Website ist nicht unbedingt eine Filtration Problem.

2. Dangerous-Scripting-Angriff

Solche Angriffe haben sich um das Skript Sie den Administrator oder andere Benutzer Informationen über den Umfang stehlen worden. Zum Beispiel wissen wir alle, stehlen Cookies, verwenden Sie das Skript auf dem lokalen Client mehr schreiben.

3. SQL-Injection Exploits

Man kann sagen, dass der Angriff von Dongwangluntan und BBSXP gestartet wird. Filtern mithilfe von SQL Sonderzeichen sind nicht dicht, und Cross-Datenbank-Abfrage-Attacken. Zum Beispiel:

http://127.0.0.1/forum/showuser.asp?id=999 und 1 = 1

http://127.0.0.1/forum/showuser.asp?id=999 und 1 = 2

http://127.0.0.1/forum/showuser.asp?id=999 und 0 (select count (*) von admin)

http://127.0.0.1/forum/showuser.asp?id=999 '; erklären @ a sysname SET @ a =' xp_ '+

"Cmdshell 'exec @ a' dir c :'---& Beihilfen = 9

Holen Sie sich das Administrator-Kennwort bedeutet, dass die gesamte Station wurde kontrolliert werden, wenn auch nicht unbedingt den Host von Privilegien, sondern auch für diesen Schritt, um eine Menge zu tun Vorahnung. SQL Injection Attacken ähnlich der Art und Weise viele verschiedene Datei-Filter ist nicht der Schluss zu eng check in unterschiedlicher Weise. Also eine komplette Charakter-Filter, wenn die Verfahren nicht die nächste Anstrengung ist nicht möglich.

4. Remote-Injection-Attacken

Eine Seite der sogenannten Filterung nur einen einfachen Formularseite JS-Filterung. Für den durchschnittlichen Benutzer, brauchen Sie nicht zu verhindern; der vorsätzlichen Angriff betroffen sind, scheinen nicht zu einem solchen Filterwirkung werden. Wir sagen oft, dass die POST-Angriff ein Beispiel ist. Remote die Informationen, um die Angriffe illegale Zwecke zu erfüllen.

Durch die obige Beschreibung der Angriffs-Methoden, mittels unserer allgemeinen Verständnis des Angreifers Angriff 就 wir damit begonnen, auf die folgende Beschreibung der Schwerpunkt, wie effektiv die Fangfan-Scripting-Angriff!

So beginnen wir von den einfachsten:

Gegen Angriffe script

JS-Scripts und HTML-Scripting-Angriffen ist sehr einfach: Server.HTMLEncode (Str) bin. Natürlich kannst du nicht weinen?, Wie kann das sein dass Sie mir zum Bahnhof gefällt mir nicht alle Filter hinzufügen erschöpft? Um die Filterung, wir müssen nur HTML-Skripten und JS-Skripte zu filtern einige der wichtigsten Charaktere können zu erleichtern : Das Verfahren Körper (1) wie folgt:

"Das folgende ist eine Filter-Funktion

"Die folgenden Anwendungsbeispiele

Benutzername = CHK (replace (Request ("username "),"'",""))

Fügen Sie die Funktion geschrieben, unter Verwendung der öffentlichen Seite, so ist die beste Effizienz.

Procedure Körper (1)

Auch unserer Aufmerksamkeit wert ist, dass viele Benutzer der Website zu registrieren oder zu modifizieren Information der Benutzer auf der Seite 上 fehlt auch Jiaoben den Filter, oder nur einer von ihnen zu filtern, ändern Sie die Registrierung Jinru Hou Gong Ji Zi Liao Skript kann noch durchgeführt werden. Übermittelte Daten von einem Benutzer zu erkennen und zu filtern, folgt das Programm Körper (2) wie:

"Das folgende ist eine Filter-Funktion

If InStr (request ("username "),"=") 0 oder

Instr (Request ("username "),"%") 0 oder

Instr (Request ("username"), chr (32)) 0 oder

Instr (Request ("username "),"?") 0 oder

Instr (Request ("username "),"&") 0 oder

Instr (Request ("username "),";") 0 oder

Instr (Request ("username "),",") 0 oder

Instr (Request ("username "),"'") 0 oder

Instr (Request ("username "),"?") 0 oder

Instr (Request ("username"), chr (34)) 0 oder

Instr (Request ("username"), chr (9)) 0 oder

Instr (Request ("username"), "") 0 oder

Instr (Request ("username "),"$") 0 oder

Instr (Request ("username ")," ") 0 oder

Instr (Request ("username ")," ") 0 oder

Instr (Request ("username "),"""") 0, dann

Response.Write "Freund, Ihren Benutzernamen submit enthält unzulässige Zeichen, ändern, ich danke Ihnen auf Rückkehr"

Response.End

end if

Procedure Körper (2)

Um die Effizienz versuchen wir, weitere Filter den Inhalt der Verfahren vorsehen, so dass die Filterleistung der verschiedenen Parameter wird in hohem Maße gesteigert werden: wie Programm-Körper (3)

"Im Anschluss an das Hauptprogramm

dim Bword (18)

Bword (0 )="?"

Bword (1 )=";"

Bword (2 )=" "

Bword (3 )=" "

Bword (4 )="-"

Bword (5 )="'"

Bword (6 )=""""

Bword (7 )="&"

Bword (8 )="%"

Bword (9 )="$"

Bword (10 )="'"

Bword (11 )=":"

Bword (12 )="|"

Bword (13 )="("

Bword (14 )=")"

Bword (15 )="--"

Bword (16) = "chr (9)"

Bword (17) = "chr (34)"

Bword (18) = "chr (32)"

ERRC = false

"Die folgenden sind einige Beispiele für Anwendungen

für i = 0 To UBound (Bword)

wenn InStr (FQYs, Bword (i)) 0 then

ERRC = true

end if

nächste

wenn dann ERRC

Response.Write ""

Response.End

end if

Procedure Körper (3)

Mit den oben genannten Filter-Funktion, die Sie in der Anwendung zu werden braucht, Filter-Funktion direkt Filter auf sie setzen können. Dies bringt uns zu der Restaurierung stark vereinfacht.

Darüber hinaus, mehr als ich möchte noch einmal daran erinnern, wird eine kleine Anzahl von Standorten in der Expression von UBB-Symbol erscheint, wenn der Filter-Transformation Problem, da sie versteckt ist nicht leicht zu finden:

Wie zum Beispiel:

Wir modifizieren den Text Etiketten,

Wusste nicht, verstehst du, vor einem einfachen Anführungszeichen und Verfahren für die in der linken Anführungszeichen, einfache Anführungszeichen in die zweite eingesetzt und schloss die rechte Anführungszeichen, damit die Ausgabe-Prozess wie vorgesehen:

Wenn das Bild nicht existiert, dann wird mit dem Tag aktivieren onerror Umsetzung Skript. Für die einfachen Anführungszeichen wurden Filtern von Websites, wie hier, komplett mit doppelten Anführungszeichen. **** Für das gefilterte Feld, und nur alert () auch. So müssen wir Filter komplett zu filtern, geben Sie nicht der Angreifer die Möglichkeit, eine Spur zu hinterlassen.

Verhindern von SQL Injection Exploits

Es kann hier gesagt werden, scheint der Fokus des gesamten Artikels. SQL Injection Attacken Diversifizierung macht auch die Verfahrensgarantien müssen wir von etwas mehr auf zu denken. SQL Injection in das Gesicht des starken "offensive", was wir am Ende des Filters?

Das Risiko von einigen häufig verwendeten Zeichen haben

"Datenbank-Felder unterscheiden geschlossen

- Mark einige der Datenbank-Annotation

# Einige Datenbank-Annotation Zeichen

"Mai bis zum Fehler führen,

Cross-Verzeichnis

3221143836nicode Zeichencodierung Features

$ Mai für variable label verwendet werden

/ Und das Gleiche

NULL vorsichtig "leeren" Eintrag in das Risiko einer Behandlung kann in die Datenbank oder Systemfehler führen, verwenden Sie Fehler Struktur Überlauf.

Räume und 'zusammen, konstruieren SQL injeciton

= & Wenn der zweite Parameter kann queryStr umgeschrieben werden.

(1) aus den allgemeinsten. SQL Injection Exploits zu lesen: Benutzernamen und Kennwort auf der Filterung Probleme, wie z. B.:

Verfasst: Benutzername: 'oder''=' User Password: 'oder''='

Ausgehend von dem Prozess, können wir gekommen, um die folgenden Datenbank

SQL = "SELECT Backup bin conf config Daten eshow_sitemap.html generate.sh log maint sitemap.html svn tmp unbedarfte FROM WHERE username =''oder''='' und Password =''oder''=''"

Auf diese Weise, so, SQL Server wird unbedarfte Tabelle alle Datensätze zurück, während die ASP-Skript für einen Angreifer ist Eingabezeile verwechselt werden unbedarfte Benutzer den ersten Datensatz in der Tabelle, so dass der Angreifer den Benutzer Login-Namen Website. Scheint diese Art von Injektion zu verhindern, ist sehr einfach:

Mit dem folgenden Verfahren kann erreicht werden, das Programm Körper (4)

strUsername = Replace (Request.Form ("Username"), "''", "''''")

strPassword = Replace (Request.Form ("Passwort"), "''", "''''")

Procedure Körper (4)

(2) auf SQL-Injection-Angriffe zu verhindern, ist der erste Schritt zu einer Vielzahl von Sicherheits-Einsatz bedeutet die Kontrolle von der ASP-Request-Objekt (reques, Request.QueryString, Request.Form, Request.Cookies und Request.ServerVariables) Benutzereingaben, um sicherzustellen, dass der SQL-Befehl Zuverlässigkeit. Besondere Sicherheitsmaßnahmen variieren je nach Ihrem DBMS.

SQL-Injection-Angriffe können Schäden für die Umwelt verursachen, hängt von der Website der Software und Konfiguration. Wenn der Webserver an den Betreiber (dbo) der Identität Zugriff auf die Datenbank mit SQL-Injection-Angriffs, die könnten alle Formen zu beseitigen, schaffen neue Formen, und so weiter. Wenn der Server zum Super-User (sa) Di Identität Zugriff auf die Datenbank mittels SQL-Injection-Attacken auf den SQL Server Kenengkongzhi; Zaimou Xie Xia Konfiguration Angriffe sind sogar eigene Yonghuzhanghao zu Wan Quan Shu Juku steuern, wo das Windows-Server.

Wie zum Beispiel:

http://127.0.0.1/forum/showuser.asp?id=999 '; erklären @ a sysname SET @ a =' xp_ '+

"Cmdshell 'exec @ a' dir c :'--& Beihilfen = 9

http://127.0.0.1/forum/showuser.asp?id=999 '; erklären @ a sysname SET @ a =' XP '+

"_cm '+' Dshell 'exec @ a' dir c :'--& Beihilfen = 9

Können sogar, wie: net user fqy fqy / stell 'das Kommando. Natürlich müssen Sie den aktuellen Status ausgeführt werden muss Sa, oder Sie greifen nur einen virtuellen Host, rate ich Ihnen, es zu stoppen.

Für einige Standorte für die Maschine zu Port 80 nutzen, um Angriffe zu verhindern Maschine direkt an administrative Rechte zu erhalten, ist es notwendig. Filter auf der xp_cmdshell werden die primären, viele Seiten sind mit GET oder Verfahren, GET und POST übermittelten Daten für diese Mischung kommen, geben wir einen Weg zur Vermeidung von GET für SQL-Injection-Verfahren: wie Programm-Körper (5)

fqys = Request.ServerVariables ("QUERY_STRING")

dim nothis (18)

nothis (0) = "net user"

nothis (1) = "xp_cmdshell"

nothis (2) = "/ add"

nothis (3) = "exec% 20master.dbo.xp_cmdshell"

nothis (4) = "net localgroup Administratoren"

nothis (5) = "select"

nothis (6) = "count"

nothis (7) = "asc"

nothis (8) = "char"

nothis (9) = "Mitte"

nothis (10 )="'"

nothis (11 )=":"

nothis (12 )=""""

nothis (13) = "insert"

nothis (14) = "delete"

nothis (15) = "drop"

nothis (16) = "abschneiden"

nothis (17) = "aus"

nothis (18 )="%"

ERRC = false

für i = 0 To UBound (nothis)

wenn InStr (FQYs, nothis (i)) 0 then

ERRC = true

end if

nächste

wenn dann ERRC

Response.Write ""

Response.End

end if

Procedure Körper (5)

Ich möchte die Aussage Punkt ist: Die oben genannten Verfahren ist ein GET-Methode auf die Daten durch den Filter vorgelegt, nicht blind anzuwenden.

Wie andere Objekte aus dem ASP-Anforderung (reques, Request.QueryString, Request.Form, Request.Cookies und Request.ServerVariables) Angriff Methode der Benutzer-Eingabe-Methoden, vor allem in dem Skript Eingangsgröße konzentriert ist die erwartete Anzahl von Variablen (ID ), natürlich können wir nicht nur auf die Anzahl Variablen wie folgt aussehen:

http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc "und links (userpasswor

d, 1) = 'ein

http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abc "und userpasswor

d = 'oder''='

Darüber hinaus, wie eine einzige Injektion, um Fehler wie diese zu verhindern?

http://127.0.0.1/systembbs/addtopic.asp?tid=99 '; löschen forum_forum; - & page = 33

Prevention Programme: Körper (6)

...... Addtopic.asp? Action = add ......

...... Addtopic.asp? Action = delect ......

Action1 = trim (Request.QueryString ())

wenn links (Action1, 7) "action =" dann "muss auf Maßnahmen beschränkt werden = QueryString

Fehler (err01) 'Fehlerbehandlung

sonst

action = Request.QueryString ("action") 'get Wert der QueryString

end if

Select Case-Aktion "auf den Deal QueryString

Bei "add"

.....

Bei "delete"

......

Case Else 'Wenn das nicht QueryString ist dies der Wert für die Fehlerbehandlung

Fehler (err02)

End Select

Procedure Körper (6)

Ein solcher Angriff stattfindet, so dass unser Webmaster wieder Kopfschmerzen haben, hier kann ich Ihnen eine Adresse geben beste Weg, allgemein gesprochen, die Anzahl der Zeichen des Benutzernamens Länge nicht mehr als 15 Zeichen, die meisten der 14 Zeichen . Dann haben wir aus der Länge gehen zu filtern: Wenn das Programm Körper (7)

Name = replace (Name ,"'","")

If Len (Name) 16 dann

Response.Write "Sie haben was?"

Response.End

End if

Procedure Körper (7)

Warum sind wir hier und Filterung der einfachen Anführungszeichen, wie es sein sollte, noch einmal eine Länge begrenzen? Little sagte 4ngel Artikel siehe erste harrying'restrictions weiterhin injection . Frag mich nicht, wie Umstellung auf digitales Format, ich will nicht, hehe ...^_^!

Auch weiterhin zu unserem Thema zurück Di, "scripts erwarten, dass die Eingangsgrößen der digitalen Variable (ID)". Zenyangjinhang Zhuru Prävention, verdammt, Fangfa zu viele, die direkte digitale Panduanshipi ist integer, es überprüfen, einige der personalisierten Ansatz stellen wir einen nach dem anderen, wie zum Beispiel: program Körper (8)

Ermitteln Sie zunächst, ob die Zahl integer ist

p_lngID = CLng (Request ("ID"))

Zweitens, nehmen Sie diese Ich glaube, das Wort Länge der Daten Länge nicht größer als 8 Bit, so:

If Len (ID) 8 dann

Response.Write "Bettpfosten"

Antwort Ende

end if

3 Ich denke, das ist ein riskanter Weg ist, eine Datenbank-Abfrage, wenn die Datenbank-Tabelle mit dem gleichen Wert ist nicht dasselbe, wie es einen Fehler zurück zu führen.

sql = "SELECT name FROM Kategorie WHERE id =" & ID

set temp = conn.Execute (SQL)

wenn temp.bof oder temp.eof dann

Response.Redirect ("index.asp")

sonst

cat_name = temp ("name")

end if

set temp = nichts

"Das wird die ID der Testdaten, die im Anschluss an die formelle Untersuchung

SQL = "SELECT ID T_ID, NAME aus der Kategorie WHERE id =" & ID & "ORDER BY xh asc"

rs.Open sql, conn, 1,1

Viertens habe ich die Daten zu filtern Skripte, Patente, oh ~

id = replace (id ,"'","")

If Len (Request ("id")) 8 then 'Warum hat er wählen Sie die Länge der oben genannten Verfahren haben gezeigt,

Response.Write ""

Response.End

sonst

Wenn Request ("id ") "" dann" take nicht leer ist die Zahl der Verfahren auf NULL-Werte verhindern, wird in der Seite erscheinen, und wenn wir hier nicht zu beurteilen, das Programm einen Fehler zu überprüfen wird.

Wenn IsNumeric (Request ("id")) = False Then 'Feng Qingyang ID ändern Data Monitoring-Programm

Response.Write ""

Response.End

end if

end if

end if

Procedure Körper (8)

Da meine Programmierung Gewohnheiten, ich alle Daten Kontrollverfahren wie waren die gesamte Station öffentliche Programme, wie gepflegt: conn.asp Materie, schreiben Sie einfach die ganze Station konnte wiederhergestellt werden, sobald das Problem.

Hier erwähne ich etwas über das Problem der Attacke ist die Benutzer-Passwort oder einen Benutzernamen, häufig verwendete ausgeführt wird

...... / Show.asp? Id = 1 und 0 (select count (*) von admin WHERE id = 3 und links (username, 1) = 'a')

Auf diese Weise eins nach dem anderen ausprobieren, natürlich können wir hier nicht erwähnen, was Perl-Programm, um das Kennwort laufen, ist das Programm, jemanden zu schreiben, ihr Know Yuan Li. Nun, ich möchte nur eine bequeme Möglichkeit geben wird, den Anwendungsbereich der ASC-Code zu nehmen. Diese als das Laufen allein viel schneller., ob ein Brief, Zahlen, Buchstaben, Sonderzeichen, sie haben immer den entsprechenden Code ASC, die folgenden Methoden verwenden:

...... / Show.asp? Id = 1 und 0 (select count (*) von admin WHERE id = 3 und ASC (rechts (links (username

e, 3), 1)) zwischen 1 und 10000) mit auf den Rest der allgemeinen 97 bis 122 können Freunde, Briefe Nun, bald D. sein Oh, natürlich, jemand auf die Mid-Funktion nutzen will, ist auch gut asc ( Mitte (username, 2,1)) zwischen 1 und 10000 geworden.

Wie viel effektiver, um SQL-Injection-Angriffe zu verhindern? Wir werden ausdrücklich die folgenden Artikel!

Injection Angriffe Remote

Solche Angriffe in der Vergangenheit sollte eine gemeinsame Angriff Methoden, wie POST Angriff kann ein Angreifer leicht ändern Sie den Datenwert auf den Zweck einzureichen wurde zum Angriff. Ein weiteres Beispiel: Cookies geschmiedet wurde, verdient es auch der Programmierer oder Bahnhof lange Note, verwenden Cookies nicht, um für die Benutzer-Authentifizierung Methode, oder Sie und der Dieb ließ den Schlüssel tun, ist aus dem gleichen Grund.

Zum Beispiel:

Wenn trim (Request. Cookies ("uname "))=" fqy" und Request.Cookies ("upwd")

= "# Fqy e3i5.com", dann

Mehr ........ .........

End if

Ich möchte Ihnen, Programme zu schreiben, wie Webmaster oder Freunde nicht solche Fehler machen, ist wirklich unverzeihlich. Counterfeit Cookies sind seit vielen Jahren von jetzt können Sie nicht die Schuld anderen Menschen nutzen diese, um Ihr Passwort laufen. Bezogen auf das Benutzer-Passwort oder eine Nutzer-Login, würden Sie besser zu nutzen ist es die sichere Sitzung. Wenn Sie Cookies in Ihrem COOKIES Informationen zu nutzen, um auf ein extra, SessionID, die 64-Bit-zufälligen Wert ist, die Lösung zu erraten, ist es nicht möglich wollen . Beispiel:

wenn nicht (oder rs.BOF rs.eof), dann

login = "true"

Session ("username" & SessionID) = Benutzername

Session ("password" & SessionID) = Passwort

"Response.Cookies (" username ") = Benutzername

"Response.Cookies (" Password ") = Passwort

Let's talk about how, um Remote-Injection-Angriffe zu verhindern, sind Angriffe meist Einzelblatt-Ablage auf den lokalen, die form action = "chk.asp" zeigen Sie auf Ihrem Server kann die Verarbeitung der Daten-Datei. Wenn Sie alle Daten-Filterung in einem einzigen Formular Seite, dann gratuliere Ihnen, Sie müssen Skript Angriff sein.

Wie können wir aufhören, wie ein Remote-Angriff? Leicht zu handhaben, siehe den folgenden Code: procedure Körper (9)

'Personal Sinne des obigen Code-Filterung ist nicht sehr gut, es gibt einige externe und sie war stolz darauf, in unterbreiten, dann schreiben Sie ein.

"Dies ist der Filter gut funktioniert, empfohlen.

wenn InStr (Request.ServerVariables ("HTTP_REFERER"), "http://" & Request.ServerVariables ("host")) 1 dann

Response.Write "Server-Fehler bei der Verarbeitung von URL.

Wenn Sie irgendwelche Mittel, um den Server anzugreifen, sollte man froh sein, für Ihren Server, müssen alle Vorgänge aufgezeichnet worden, werden wir vorab das Public Security Bureau und die nationale Sicherheit, um Ihre IP-Abteilung untersuchen. "

Response.End

end if

Procedure Körper (9)

Ich dachte, dass alles in Ordnung sein, in der Form Seite, indem Sie einige Einschränkungen, z. B. maxlength Freunde, etc. .. aber Gott ist so Buzuo Mei, du immer mehr Angst davor, was er war. Vergessen Sie nicht, kann ein Angreifer durch SQL-Injection-Pause Angriff, begrenzen die Länge der Eingabezeile. Schreiben Sie eine SOCKET Verfahren HTTP_REFERER ändern? Ich will nicht. Online veröffentlicht diesem Artikel:

------------ Len. Reg -----------------

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt verlängert (& E)]

@ = "C: Dokumente und SettingsAdministrator Desktop len.htm"

"Kontexte" = dword: 00000004

----------- Ende ----------------------

----------- Len. Htm ------------------

---------- ----------------------- End

Usage: erste len.reg in der Registrierung (siehe den Pfad der Datei)

Und dann kopieren sie in der Registrierung angegeben len.htm.

Öffnen Sie die Web-Seite, um den Cursor auf das Eingabefeld Veränderung der Länge der rechten Maustaste, um mehr von einer Call-Option auf der rechten Seite sehen Verlängerung

Klicken Sie, um! Nachtrag: Die gleichen Einschränkungen können auch mit den Elementen des Skripts Input umgehen.

Wie? Unser Limit verschont blieb, und alle Bemühungen waren vergeblich? Nicht, heben Sie die de-Tastatur, nein sagen. Lassen Sie uns weiterhin, um es zurück zu den Schriftzeichen Filter, sie waren nichts weiter als Script-Injection-Angriffe. All die Energie, die wir alle verwenden ACTION-Seite, nachdem es in chk.asp Seite, wir filtern alle ungültigen Zeichen, das Ergebnis? Wir haben nur erschossen Finte in Front und ihnen gesagt, die Registrierung ist, ändern, wenn Sie finden komplette Veränderung, sie sind so vergeblich tun.

ASP Trojan

Wurde hier, um Sie daran erinnern, ein Webmaster-Forum, achten Sie auf Ihre Datei-Uploads: Warum wurde nach dem Forum-Programm unterbrochen wird auch ein Angreifer zu nehmen Host erwähnt. Grund, warum ...... Recht! ASP Trojan! Ein absolut abscheuliche Sache. Was Virus? Definitiv nicht. Die Dateien einfach in Ihr Forum-Programm, gehen Sie Ihren alten. Oh nein Hämatemesis seltsam. Wie ASP Trojaner zu verhindern, den Server hochgeladen wurde? Methode ist einfach, wenn Ihr Forum Hochladen von Dateien unterstützen, können Sie das Dateiformat Sie hochladen möchten, weiß ich nicht verwenden können, das Dateiformat zu ändern, direkt aus dem Verfahren gesperrt, nur um die Image-Datei-Format, komprimierte Dateien und kann vollständig bequemer auch ihre eigenen zu verlassen bequemer, den Angreifer zu verlassen. Wie um das Format zu beurteilen, ich habe hier eine Sammlung, auch ein, können wir schauen: Das Verfahren Körper (10) geändert

"Bestimmen Sie den Dateityp ist qualifiziert

Private Function CheckFileExt (fileext)

dim Forumupload

Forumupload = "gif, jpg, bmp, jpeg"

Forumupload = split (Forumupload ,",")

für i = 0 To UBound (Forumupload)

wenn lcase (fileext) = lcase (trim (Forumupload (i))) dann

CheckFileExt = true

Exit-Funktion

sonst

CheckFileExt = false

end if

nächste

End Function

"Überprüfen Sie die Legitimität des Dokuments

gesetzt MyFile = Server.CreateObject ("Scripting.FileSystemObject")

gesetzt MyText = MyFile.OpenTextFile (sFile, 1) "eine Textdatei lesen

sTextAll = lcase (MyText.ReadAll): MyText.close

"Bestimmen Sie die Gefahr des Nutzers Datei-Operationen

SSTR = "8 |. GetFolder |. CreateFolder |. Ordner löschen |. CreateDirectory |

. DeleteDirectory "

SSTR = SSTR & "|. SaveAs | WScript.Shell | script.encode"

sNoString = split (SSTR ,"|")

für i = 1 bis sNoString (0)

wenn InStr (sTextAll, sNoString (i)) 0 then

sFile = Upl.Path & sFileSave: fs.DeleteFile sFile

Response.Write "

"& & SFileSave" Dokumente und Betrieb von Verzeichnissen mit den entsprechenden Befehl "& _

"

"& Mid (sNoString (i), 2) &", aus Gründen der Sicherheit können nicht hochgeladen werden. "& _

"

"

Response.End

end if

nächste

Procedure Körper (10)

Fügen Sie Ihrem Upload ihre Verfahren in einer Validierung zu tun, dann ist die Sicherheit Ihrer Upload-Vorgang wird wesentlich verbessert werden.

Was? Sie sich keine Sorgen? Out killer, fragen Sie Ihren Hosting-Anbieter, um es zu helfen. Login auf dem Server, wird PROG ID "Shell.Application" Gegenstände und "shell.application.1" item umbenannt oder gelöscht. Dann "WScript.Shell" Gegenstände und "WSCRIPT.SHELL.1" Diese beiden sollten umbenannt oder gelöscht werden. Oh, ich wage zu sagen, mehr als die Hälfte der chinesischen kann keine Sanierung des virtuellen Hosts werden. Glücklicherweise kann man sehr kooperativ Nutzer, sonst ...... Ich lösche, lösche ich, delete lösche ich meine ......

Zusammenfassung

Wie besser verhüten SQL Injection-Angriffen? Hier bin ich, um mehrere Möglichkeiten, erstens, kostenlose Programme nicht wirklich freie Nutzung empfehlen, da man den originalen Code teilen können, dann kann der Angreifer den gleichen Code zu analysieren. Wenn die Eigentümer die Möglichkeit haben, zu ändern, was das Beste Datenbank Tabellennamen, Feldnamen, verändern nur die wichtigsten admin, Benutzername, Kennwort auf sie, wie forum_upasswd diesem Bereich, der den Namen erraten können? Wenn Sie, vermuteten die meisten guter Kauf Lotterie es schnell, eine hohe Auszeichnung willst du nicht wer dann? Darüber hinaus ist die Schlüssel in der allgemeinen Site Administrator-Passwort liegt, gut schützen Sie Ihr Administrator-Passwort, dass entscheidend ist, mindestens 10 die Anzahl der Buchstaben-Kombinationen. Plus die meisten der Website Programm wird nun MD5 benutzen, um das Benutzer-Passwort verschlüsseln, plus Passwort Robustheit, so die Sicherheit Ihrer Website auf dem stark erhöht. Selbst wenn es eine SQL-Injection-Schwachstelle kann ein Angreifer nicht gewinnen Sie die Website sofort.