Wie man Hackerangriffen besser vorbeugen kann, dazu möchte ich gerne meine persönliche Meinung äußern! Erstens sollten kostenlose Programme nicht kostenlos genutzt werden. Da Sie den Originalcode weitergeben können, können Angreifer den Code auch analysieren. Wenn Sie auf die Details achten, wird die Sicherheit Ihrer Website erheblich verbessert. Selbst wenn eine Schwachstelle wie SQL-Injection auftritt, ist es für einen Angreifer unmöglich, Ihre Website sofort lahmzulegen.
Aufgrund der Bequemlichkeit und Benutzerfreundlichkeit von ASP verwenden immer mehr Website-Hintergrundprogramme die ASP-Skriptsprache. Da ASP selbst jedoch einige Sicherheitslücken aufweist, können Hacker es ausnutzen, wenn sie nicht vorsichtig sind. Tatsächlich ist Sicherheit nicht nur eine Angelegenheit von Netzwerkadministratoren, Programmierer müssen auch auf bestimmte Sicherheitsdetails achten und gute Sicherheitsgewohnheiten entwickeln, da dies sonst zu enormen Sicherheitsrisiken für ihre Websites führt. Derzeit weisen die meisten ASP-Programme auf Websites die eine oder andere Art von Sicherheitslücken auf. Wenn Sie jedoch beim Schreiben von Programmen darauf achten, können diese dennoch vermieden werden.
1. Benutzername und Passwort werden geknackt
Angriffsprinzip: Benutzername und Passwort sind oft das, woran Hacker interessiert sind. Wenn der Quellcode auf irgendeine Weise eingesehen wird, sind die Folgen schwerwiegend.
Präventionsfähigkeiten: Programme, die Benutzernamen und Passwörter betreffen, werden am besten auf der Serverseite gekapselt und erscheinen so wenig wie möglich in ASP-Dateien. Benutzernamen und Passwörtern, die Datenbankverbindungen betreffen, sollten die Mindestberechtigungen erteilt werden. Benutzernamen und Passwörter, die häufig vorkommen, können in eine versteckte Include-Datei geschrieben werden. Wenn es darum geht, eine Verbindung zur Datenbank herzustellen, erteilen Sie ihr idealerweise nur die Berechtigung, gespeicherte Prozeduren auszuführen. Erteilen Sie dem Benutzer niemals direkt die Berechtigung, Datensätze zu ändern, einzufügen oder zu löschen.
2. Prinzip des umgangenen
Verifizierungsangriffs: Die meisten ASP-Programme, die verifiziert werden müssen, fügen jetzt eine Beurteilungserklärung in die Kopfzeile der Seite ein. Dies reicht jedoch nicht aus. Es ist für Hacker möglich, die Verifizierung zu umgehen und direkt einzutreten.
Präventionsfähigkeiten: ASP-Seiten, die überprüft werden müssen, können den Dateinamen der vorherigen Seite verfolgen. Nur von der vorherigen Seite übertragene Sitzungen können diese Seite lesen.
3. Inc-Dateileckproblem
Angriffsprinzip: Wenn die Homepage mit ASP erstellt wird und vor dem Debuggen noch nicht fertiggestellt wurde, kann sie von einigen Suchmaschinen automatisch als Suchobjekt hinzugefügt werden. Wenn jemand zu diesem Zeitpunkt eine Suchmaschine verwendet, um nach diesen Webseiten zu suchen, erhält er den Speicherort der relevanten Dateien und kann die Details des Speicherorts und der Struktur der Datenbank im Browser anzeigen, wodurch der vollständige Quellcode angezeigt wird.
Präventionstipps: Programmierer sollten Webseiten gründlich debuggen, bevor sie sie veröffentlichen; Sicherheitsexperten müssen ASP-Dateien härten, damit externe Benutzer sie nicht sehen können. Verschlüsseln Sie zunächst den Inhalt der .inc-Datei. Zweitens können Sie anstelle der .inc-Datei auch die .asp-Datei verwenden, damit Benutzer den Quellcode der Datei nicht direkt im Browser anzeigen können. Der Dateiname der INC-Datei sollte nicht den Systemstandard oder einen Namen mit besonderer Bedeutung verwenden, der für Benutzer leicht zu erraten ist. Versuchen Sie, unregelmäßige englische Buchstaben zu verwenden.
4. Prinzip des automatischen Backup-Download-
Angriffs: In einigen Tools zum Bearbeiten von ASP-Programmen erstellt der Editor beim Erstellen oder Ändern einer ASP-Datei automatisch eine Backup-Datei. Wenn Sie beispielsweise eine .bak-Datei erstellen oder ändern Wenn Sie some.asp ändern, generiert der Editor automatisch eine Datei mit dem Namen some.asp.bak. Wenn Sie diese Bak-Datei nicht löschen, kann der Angreifer die Datei some.asp.bak direkt herunterladen, sodass das Quellprogramm von some.asp wird heruntergeladen.
Tipps zur Vorbeugung: Überprüfen Sie Ihr Programm vor dem Hochladen sorgfältig und löschen Sie unnötige Dokumente. Seien Sie besonders vorsichtig bei Dateien mit dem Suffix BAK.
5.
Prinzip des Sonderzeichenangriffs: Das Eingabefeld ist ein Ziel für Hacker. Sie können dem Benutzerclient Schaden zufügen, indem sie eine Skriptsprache eingeben. Sie verwenden spezielle Abfrageanweisungen, um weitere Datenbankdaten abzurufen. oder sogar die gesamte Tabelle. Daher muss das Eingabefeld gefiltert werden. Wenn die Überprüfung der Eingabegültigkeit jedoch nur auf dem Client durchgeführt wird, um die Effizienz zu verbessern, kann sie dennoch umgangen werden.
Präventionsfähigkeiten: In ASP-Programmen, die Eingabefelder wie Message Boards und BBS verarbeiten, ist es am besten, HTML-, JavaScript- und VBScript-Anweisungen zu blockieren. Wenn keine besonderen Anforderungen bestehen, können Sie die Eingabe von Buchstaben und Zahlen auf nur Buchstaben und beschränken Zahlen und Sonderzeichen blockieren. Gleichzeitig ist die Länge der Eingabezeichen begrenzt. Und nicht nur die Eingabegültigkeitsprüfung muss auf der Clientseite durchgeführt werden, sondern ähnliche Prüfungen müssen auch auf dem serverseitigen Programm durchgeführt werden.
6.
Prinzip des Datenbank-Download-Schwachstellenangriffs: Wenn jemand Access als Backend-Datenbank verwendet und über verschiedene Methoden den Pfad und den Datenbanknamen der Access-Datenbank des Servers kennt oder errät, kann er auch die Access-Datenbankdatei herunterladen, was sehr gefährlich ist . von.
Tipps zur Vorbeugung:
(1) Geben Sie Ihrer Datenbankdatei einen komplexen und unkonventionellen Namen und legen Sie sie in mehreren Verzeichnissen ab. Das sogenannte „Unkonventionelle“: Wenn es beispielsweise eine Datenbank gibt, die Informationen über Bücher speichern möchte, geben Sie ihr nicht den Namen „book.mdb“, sondern einen seltsamen Namen, z. B. d34ksfslf , und legen Sie es in mehreren Verzeichnissen wie ./kdslf/i44/studi/ ab, damit es für Hacker noch schwieriger wird, durch Raten an Ihre Access-Datenbankdatei zu gelangen.
(2) Schreiben Sie den Datenbanknamen nicht in das Programm. Manche Leute schreiben gerne DSN in das Programm, zum Beispiel:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Wenn jemand das Quellprogramm erhält, ist der Name Ihrer Access-Datenbank auf einen Blick sichtbar. Daher wird empfohlen, die Datenquelle in ODBC festzulegen und dann Folgendes in das Programm zu schreiben:
conn.open „shujiyuan“
(3) Verwenden Sie Access, um die Datenbankdatei zu kodieren und zu verschlüsseln. Wählen Sie zunächst die Datenbank (z. B. „mitarbeiter.mdb“) unter „Extras → Sicherheit → Datenbank verschlüsseln/entschlüsseln“ aus und klicken Sie dann auf „OK“. Anschließend wird das Fenster „Datenbank verschlüsselt speichern unter“ angezeigt. Sie können sie unter dem Namen „arbeitgeber1“ speichern .mdb".
Es ist zu beachten, dass die obige Aktion kein Kennwort für die Datenbank festlegt, sondern nur die Datenbankdatei verschlüsselt. Der Zweck besteht darin, andere daran zu hindern, den Inhalt der Datenbankdatei anzuzeigen.
Als nächstes verschlüsseln wir die Datenbank. Öffnen Sie zunächst die verschlüsselte Employee1.mdb. Wählen Sie beim Öffnen den Modus „Exklusiv“. Wählen Sie dann „Extras → Sicherheit → Datenbankkennwort festlegen“ aus dem Menü und geben Sie dann das Kennwort ein. Selbst wenn eine andere Person die Datei „employee1.mdb“ erhält, kann sie auf diese Weise den Inhalt von „employee1.mdb“ ohne das Kennwort nicht sehen.
7.
Diese Art von Angriff sollte in der Vergangenheit eine relativ häufige Angriffsmethode sein, z. B. ein POST-Angriff. Der Angreifer kann den zu übermittelnden Datenwert nach Belieben ändern, um den Zweck des Angriffs zu erreichen. COOKIES-Fälschung, die lohnender ist. Dies erregt die Aufmerksamkeit von Programmierern oder Webmastern. Andernfalls überlassen Sie den Schlüssel einem
Dieb
.
uname"))=" fqy" und Request.cookies("upwd") ="fqy#e3i5.com" dann
……..mehr…………
Wenn
ich denke, dass alle Webmaster oder Freunde, die gerne Programme schreiben, diesen Fehler nicht machen dürfen, ist es wirklich unverzeihlich, dass wir seit vielen Jahren COOKIES fälschen Wenn es um Benutzerkennwörter oder Benutzeranmeldungen geht, verwenden Sie besser die Sitzung, die am sichersten ist. Wenn Sie COOKIES verwenden möchten, fügen Sie eine weitere Information zu Ihren COOKIES hinzu: Der zufällige Wert 64 Bit. Sie müssen es erraten. Beispiel:
Wenn nicht (rs.BOF oder rs.eof).
login="true"
Sitzung("Benutzername"&Sitzungs-ID) = Benutzername
Session("password"& sessionID) = Passwort
'Response.cookies("username")= Benutzername
'Response.cookies("Password") = Passwort
Lassen Sie uns darüber sprechen, wie Sie Remote-Injection-Angriffe verhindern können. Der allgemeine Angriff besteht darin, die einzelne Formularübermittlungsdatei auf die lokale Datei zu ziehen und die Form ACTION="chk.asp" auf Ihren Server zu verweisen Datendateien reichen aus. Wenn Ihre gesamte Datenfilterung auf einer einzigen Tabellenseite erfolgt, werden Sie von einem Skript angegriffen.
Wie können Sie solche Remote-Angriffe verhindern? folgt: Programmkörper (9)
<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 dann
Response.write „<br><br><center>“
Antwort.write " "
Response.write „Der von Ihnen übermittelte Pfad ist falsch. Die Übermittlung von Daten von außerhalb der Website ist verboten. Bitte ändern Sie die Parameter nicht!“
Antwort.write "
"
Antwort.Ende
Ende wenn
%>
„Ich persönlich bin der Meinung, dass die oben genannte Code-Filterung nicht sehr gut ist. Daher habe ich eine andere geschrieben:
„Dieser Filtereffekt ist sehr gut, es wird empfohlen, ihn zu verwenden.
“ .servervariables("http_referer" )," http://"&request.servervariables("host ") )<1 then Response.write „Auf dem Server ist bei der Verarbeitung der URL ein Fehler aufgetreten.
Wenn Sie den Server auf irgendeine Weise angreifen
, dann sollten Sie froh sein,
dass alle Ihre Vorgänge vom Server aufgezeichnet wurden. Wir werden das Büro für öffentliche Sicherheit und das Nationale Sicherheitsministerium so schnell wie möglich benachrichtigen, um Ihre IP zu untersuchen
Ende wenn
Der Hauptteil des Programms (9)
dachte, dass damit alles in Ordnung wäre, und fügte der Formularseite einige Einschränkungen hinzu, wie z. B. maximale Länge usw. Aber Gott ist so unfreundlich, je mehr man vor etwas Angst hat, desto wahrscheinlicher ist es Vergessen Sie nicht, dass der Autor bei SQL-Injection-Angriffen die Begrenzung der Eingabefeldlänge durchbrechen kann. Schreiben Sie ein SOCKET-Programm, um HTTP_REFERER zu ändern. Das werde ich nicht. Ein solcher Artikel wurde online veröffentlicht:
------------len.reg-----------------
Windows-Registrierungseditor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtExtensions]
@="C:Dokumente und EinstellungenAdministratorDesktoplen.htm"
„contexts“=dword:00000004
----------Ende---------------------
---------len.htm-----------------
----------Ende-------
Verwendung: Zuerst len.reg in die Registry importieren (Dateipfad beachten)
und Kopieren Sie dann „len.htm“ an die angegebene Stelle in der Registrierung,
platzieren Sie den Cursor auf dem Eingabefeld, in dem die Länge geändert werden soll, und klicken Sie mit der rechten Maustaste auf „
Fertig“
.: Das Gleiche kann
man
mit Skripten machen, die den Eingabeinhalt einschränken .Unsere Grenzen wurden geschont und alle unsere Bemühungen waren umsonst? Nein, halten Sie Ihre Tastatur hoch und sagen Sie Nein. Kommen wir zurück zur Filterung von Skriptzeichen. Die von ihnen durchgeführte Injektion ist nichts anderes als Skriptangriffe. Lassen Sie uns unsere ganze Energie in die Seiten nach ACTION stecken. Auf der Seite chk.asp filtern wir alle illegalen Zeichen heraus. Wir haben vor unseren Augen nur eine falsche Chance gegeben und sie gebeten, die Registrierung zu ändern. Erst wenn sie mit den Änderungen fertig sind, werden sie erkennen, dass das, was sie getan haben, vergeblich ist.
8.
Wir haben hier über den ASP-Trojaner gesprochen, und ich möchte alle Foren-Webmaster daran erinnern, beim Hochladen von Dateien vorsichtig zu sein: Warum wird der Host auch von Angreifern belegt, nachdem das Forenprogramm kaputt ist? Der Grund ist... richtig! ASP-Trojaner! Eine absolute Abscheulichkeit. Virus? Nein. Fügen Sie die Datei einfach in das Programm Ihres Forums ein und Sie können immer danach suchen. Es wäre seltsam, kein Blut zu erbrechen. Wie können wir verhindern, dass ASP-Trojaner auf den Server hochgeladen werden? Die Methode ist sehr einfach. Wenn Ihr Forum das Hochladen von Dateien unterstützt, stimmen Sie der Verwendung von veränderbaren Dateiformaten nicht zu. Nur Bilddateiformate und komprimierte Dateien Ja, mehr Komfort für sich selbst bedeutet auch mehr Komfort für Angreifer. Wie kann ich das Format bestimmen? Ich habe eines hier gesammelt und geändert. Sie können es sich ansehen:
Programmkörper (10)
„Beurteilen Sie, ob der Dateityp qualifiziert ist.“
dim Forumupload
Forumupload="gif,jpg,bmp,jpeg"
Forumupload=split(Forumupload,",")
für i=0 bis ubound(Forumupload)
wenn lcase(fileEXT)=lcase(trim(Forumupload(i))) dann
CheckFileExt=true
Exit-Funktion
anders
CheckFileExt=false
Ende wenn
nächste
Funktion beenden
'Überprüfen Sie die Rechtmäßigkeit des Dateiinhaltssatzes
MyFile = server.CreateObject ("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile (sFile, 1) ' Textdatei lesen sTextAll = lcase(MyText.ReadAll): MyText.close
'Gefährliche Vorgänge in Benutzerdateien ermitteln sStr = "8 .getfolder .createfolder .deletefolder .createdirectory
.Verzeichnis löschen"
sStr = sStr & " .saveas wscript.shell script.encode"
sNoString = split(sStr," ")
für i = 1 bis sNoString(0)
wenn instr(sTextAll, sNoString(i)) <> 0 dann
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write "<center><br><big>"& sFileSave &"Die Datei enthält Befehle, die sich auf Betriebsverzeichnisse usw. beziehen."&_
"<br><font color=red>"& mid(sNoString(i),2) &"</font>, aus Sicherheitsgründen kann <b> nicht hochgeladen werden. <b>"&_"</big>< /center></html>"
Antwort.Ende
Ende wenn
WeiterFügen Sie
sie zur Überprüfung zu Ihrem Upload-Programm hinzu, dann wird die Sicherheit Ihres Upload-Programms erheblich verbessert
. Sind Sie immer noch besorgt? Überlegen Sie sich Ihren Trumpf und bitten Sie Ihren Webhosting-Dienstleister um Hilfe. Melden Sie sich beim Server an und benennen Sie die Elemente „shell.application“ und „shell.application.1“ in der PROG-ID um oder löschen Sie sie. Benennen Sie dann sowohl das Element „WSCRIPT.SHELL“ als auch „WSCRIPT.SHELL.1“ um oder löschen Sie es. Haha, ich kann mit Fug und Recht sagen, dass sich wahrscheinlich mehr als die Hälfte der virtuellen Hosts in China nicht verändert haben. Ich kann nur froh sein, dass Ihre Benutzer sehr kooperativ sind, sonst... Ich werde löschen, ich werde löschen, ich werde löschen, löschen, löschen...