Wenn Sie ein Website-Inhaber oder ein Entwickler sind, sind Sie sich wahrscheinlich der Bedrohung durch Hacker bewusst. Es gibt viele Möglichkeiten, Ihre datenbankgestützte ASP- oder PHP-Website vor Hackerangriffen zu schützen, die von schwachen bis zu starken Sicherheitsmaßnahmen reichen. Hier erfahren Sie, wie Hacker, die Methoden wie SQL-Injection-Angriffe und XSS (Cross-Site-Scripting) verwenden, über die URL-Querystring- und Formulareingaben gebremst werden. Zwei allgemeine Arten von Hackerblockierungstechniken werden besprochen, einschließlich benutzerdefinierter Fehlerseiten und Eingabevalidierung. Diese Methoden sind so einfach, dass Sie selbst nur mit grundlegenden Programmierkenntnissen arbeiten können. Ihre beste Strategie wäre es, eine Kombination aus so vielen kleinen Hindernissen wie möglich aufzustellen.

Schritte

  1. 1 SQL-Datenbank-getriebene Websites sind gefährdet.
  2. 2 Jede Webseite, die Parameter an eine Datenbank übergibt, kann anfällig für Angriffe sein. Dazu gehören E-Commerce-Einkaufswagen oder jede andere Website, die ein Formular für die Anmeldung, Suche usw. enthält. Jede SQL-Datenbank-gesteuerte Website ist Hackern ausgesetzt, die möglicherweise durch eine Hintertür in die Datenbank eindringen können. In der Regel sind diese Hintertüren in URL-Abfragezeichenfolgen und Formulareingaben enthalten, z. B. Anmeldeformulare, Suchformulare oder andere Benutzereingabetextfelder, die mit einer Datenbank kommunizieren können.
  3. 3 Erhalten Sie einen grundlegenden Überblick über Hacking.
    • Im Allgemeinen kann ein Hacker falsche Zeichen in die URL-Abfragezeichenfolge oder ein Textfeld eingeben. Die falsche Eingabe wird dann als SQL und nicht als gewöhnliche Benutzerdaten interpretiert und von der nichtsahnenden Datenbank ausgeführt. Daher kann die Website einen Fehler enthalten und einen Fehler anzeigen, sodass der Hacker private Informationen über die Datenbank abrufen kann. Schlimmer noch, die gefährlichen Skripte des Hackers können tatsächlich auf der Datenbank ausgeführt werden, was zu Sicherheitsverletzungen und / oder dauerhaften Schäden führt.
  4. 4 Verstehen Sie, wie Hacker es tun.
    • Das erste Ziel eines Hackers besteht darin, wiederholt zu versuchen, eine Website zu durchbrechen, wodurch eine Vielzahl wertvoller Fehler angezeigt wird, die private Datenbankdetails preisgeben. Auf diese Weise kann er Einblick in die Struktur der Datenbank gewinnen und schließlich eine Karte oder Fußabdruck aller seiner Tabellen und Spalten erstellen. Das zweite Ziel des Hackers ist es, die Datenbank durch böswillige Ausführung von Skripten zu manipulieren. Mit der Kontrolle über die Datenbank kann der Hacker möglicherweise Kreditkartennummern stehlen, Daten löschen oder sie mit Viren infizieren, neben anderen unangenehmen Dingen. Im Wesentlichen sind die URL-Abfragezeichenfolge und die Textbox die zwei Hintertüren in eine Datenbank. Fehler zu bekommen und die Hintertür zu manipulieren, sind die beiden Methoden, mit denen Hacker eine Datenbank letztendlich zerstören.
  5. 5 Verstehen Sie, wie Sie Ihre eigene Website hacken.
    • Schauen wir uns an, wie ein Hacker in eine Webseite einbrechen könnte. Mit der beschriebenen ersten Technik kann er den URL-Querystring hacken und einen Fehler anzeigen lassen. Sie können einen einfachen Test durchführen, um über die URL-Abfrage in Ihre eigene Website zu hacken. Sie müssen lediglich etwas anderes direkt in die Adressleiste am Ende der Abfragezeichenfolge eingeben.
  6. 6 Geben Sie Ihre URL wie im folgenden Beispiel ein und drücken Sie die Eingabetaste: http://www.mywebsite.com/bookreports.asp?reportID=21
  7. 7Fügen Sie einfach ein einfaches Anführungszeichen am Ende der Abfragezeichenfolge an und drücken Sie die Eingabetaste: http://www.mywebsite.com/bookreports.asp?reportID=21 '
  8. 8Erzeuge einen Fehler.
  9. 9Wie vorhergesagt, haben Sie möglicherweise Ihre Website erfolgreich beschädigt und einen Fehler wie folgt erhalten.
  10. 10Fehlertyp:
  11. 11Microsoft OLE DB-Provider für ODBC-Treiber (0x80040E14)
  12. 12[Microsoft] [ODBC SQL Server-Treiber] [SQL Server] Nicht geschlossenes Anführungszeichen vor der Zeichenfolge 'AND users.userID = reports.reportsID'.
  13. 13/bookreports.asp, Zeile 20
  14. 14 Das einfache Anführungszeichen verursacht einen nicht geschlossenen Anführungszeichenfehler und jetzt sind die einmal geheimen Tabellennamen und Spaltennamen Ihrer Datenbank öffentlich sichtbar. Nachdem eine Reihe dieser Arten von wertvollen Fehlern erzeugt wurde, kann ein Hacker private Datenbankdetails zusammensetzen, die ihm letztendlich dabei helfen, in die Datenbank einzudringen und sie zu verheeren.
  15. 15Webseitenfehler ausblenden
  16. 16 Die effektivste Lösung, um die privaten Details Ihrer Datenbank nicht in die Hände eines Hackers zu bekommen, besteht darin, eine benutzerdefinierte Fehlerseite für Ihre Website einzurichten. Auf diese Weise sieht ein Hacker niemals detaillierte Fehlermeldungen. Wenn Sie nichts anderes tun, ist dies die Nummer eins, die jede Website haben muss. Andernfalls geben Sie dem Hacker eine offene Einladung in Ihre Datenbank und bieten ihm praktisch alle Informationen, die er für einen Angriff benötigt.
  17. 17Richten Sie benutzerdefinierte Fehlerseiten ein.
  18. 18 Einige Hosting-Dienste verwenden automatisch benutzerdefinierte Fehlerseiten, um Ihre Sicherheit zu schützen. Um eine eigene benutzerdefinierte Fehlerseite einzurichten, müssen Sie sich bezüglich der Anweisungen an Ihren Web-Host wenden. Im Allgemeinen werden Sie eine neue HTML-Seite erstellen, die so aussieht, wie Sie möchten, und das sagt etwas kurz und bündig, wie "Leider ist die von Ihnen angeforderte Seite nicht verfügbar." Dann speichern Sie es als error404.htm und laden Sie es auf Ihren Server. Wenn Sie den Anweisungen Ihres Hosts folgen, ändern Sie die Website-Einstellungen so, dass sie auf die neue Fehlerseite zeigen. Dies wird viele Hacker direkt stoppen.
  19. 19Manipulieren Sie die URL-Abfragezeichenfolge.
  20. 20 Neben dem Fangen nach Fehlern kann ein Hacker sogar noch gefährlicheren Code als einen einfachen Anführungsstrich in die URL-Abfrage eingeben. In dem Bemühen, bösartige Skripte in einer Datenbank auszuführen, wird eine Vielzahl von kreativen Kodierungen verwendet, wie zum Beispiel% 20HAVING% 201 = 1 oder vielleicht% 20, Herunterfahren ohne Warten - oder viel schlechter. Sobald der Hacker Skripte ausführen kann, ist die anfällige Datenbank wie Kitt in ihren Händen. Der Hacker muss nie den Login oder die Verbindungszeichenfolge der Datenbank kennen, da er den URL-Querystring verwendet, der bereits eine offene Verbindung hat.
  21. 21http: //www.mywebsite.com/bookreports.asp? ReportID = 21 '; drop table myTablename--
  22. 22Ihre Tabelle ist endgültig gelöscht.
  23. 23Manipulieren Sie die Formulareingabe.
  24. 24 Der andere häufigste Punkt neben der URL-Abfragezeichenfolge ist die Formulareingabe. Ein Hacker kann jedes Textfeld in einem HTML-Formular manipulieren. Ein Suchfeld oder ein Login-Formular mit Benutzernamen und Passwortfeldern sind Hauptziele. Der Hacker kann falsche Zeichen in das Textfeld eingeben und das Formular abschicken. Die Eingabe wird dann als SQL und nicht als normale Benutzerdaten interpretiert und von der Datenbank ausgeführt. Erneut wird dieser Angriff entweder einen Fehler verursachen, so dass er private Informationen über Ihre Datenbank abrufen kann, oder er kann gefährliche Skripte einfügen und Chaos in der Datenbank verursachen.
  25. 25Fred '; drop table myTablename--
  26. 26Ihre Tabelle ist endgültig gelöscht.
  27. 27Eingabe blockieren, die schädlichen Code enthält.
  28. 28 Inzwischen haben Sie wahrscheinlich eine gute Vorstellung davon, wie viel Schaden ein Hacker verursachen kann und Sie sind bereit und willens, alles zu tun, um sie aufzuhalten. Die beste Möglichkeit, einen Hacker daran zu hindern, die URL-Abfragezeichenfolge und die Textfelder zu manipulieren, besteht darin, deren Eingabe zu blockieren. Aber wie bestimmen Sie, wer sie sind, was sie eingeben und ob sie sicher ist oder nicht? Du kannst es leider nicht wissen. Sie müssen also davon ausgehen, dass alle Benutzereingaben potenziell gefährlich sein können. Ein gängiges Sprichwort in der Programmierwelt ist, dass ALLE EINGABE BÖSE ist. Daher muss es mit Vorsicht behandelt werden. Alles von jedem sollte jedes Mal überprüft werden, um sicherzustellen, dass kein gefährlicher Code eindringt. Dies wird erreicht, indem alle Eingaben überprüft werden, die über eine Abfragezeichenfolge oder ein Formular gesendet werden, und dann unsichere Zeichen zurückweist oder entfernt. Wenn das nach einer Menge Ärger klingt, haben Sie Recht. Aber es ist der Preis, den wir bezahlen, um unsere Webseiten und Datenbanken vor dem Zorn der Hacker zu schützen. Es liegt in Ihrer Verantwortung als Webmaster sicherzustellen, dass nur saubere, sichere Eingaben in Ihre Datenbank gelangen dürfen.
  29. 29Eingabevalidierung
  30. 30 Um zu überprüfen, ob die in die URL-Abfragezeichenfolge oder das Textfeld eingegebene Eingabe sicher ist, können wir die Eingabevalidierungsregeln verwenden. Mit anderen Worten, die Verwendung von ASP-Code auf einer Webseite kann die aus der Abfragezeichenfolge oder dem Formular gesammelte Eingabe überprüfen, um sicherzustellen, dass sie nur sichere Zeichen enthält. Sobald die Eingabe als sicher erachtet wird, kann sie in einer neuen Variablen gespeichert, in die SQL-Zeichenfolge eingefügt und an die Datenbank gesendet werden. Für weitere Details zur Validierung,
  31. 31Der Wasch- und Spülzyklus.
  32. 32 Die Eingabevalidierung sollte ein zweiteiliger Prozess sein, wie ein Wasch- und Spülzyklus. Wir möchten alle Eingaben gründlich bereinigen, indem wir zuerst nach sicheren Zeichen suchen und dann nach schlechten Zeichen suchen. Weitere Informationen zu dieser Methode finden Sie in den Ressourcen am Ende dieses Artikels.
  33. 33Charaktere filtern
  34. 34Eine andere Methode, die in Verbindung mit den obigen zwei Funktionen verwendet werden kann, aber als sehr schwach angesehen wird, wenn sie alleine verwendet wird, besteht darin, die Eingabe durch Filtern oder Entweichen zu bereinigen.
  35. 35 Eine bekannte Bedrohung ist das einfache Anführungszeichen oder Apostroph, da es die SQL-Anweisung unterbricht. Es folgt ein ASP-Beispiel, das das einfache Zitat unschädlich macht, indem es durch zwei einfache Anführungszeichen ersetzt wird.
  36. 36doppelte doppelte Anführungszeichen
  37. 37new Safe String = ersetzen (searchInput, "'", "")
  38. 38 Andere Varianten für die Replace-Funktion sind das Entfernen des Skript-Tags und das Ersetzen durch ein Leerzeichen. Oder filtern Sie Zeichen wie das Dollarzeichen $ Anführungszeichen "Semikolon; und Apostroph 'die linken und rechten spitzen Klammern <> die linken und rechten Klammern () das Rautenzeichen # und das kaufmännische Und. Oder konvertieren Sie diese Zeichen in ihre HTML-Entitäten.
  39. 39Denken Sie daran, eine Lösung zu verwenden, die am besten zu Ihrer Website passt, oder wenden Sie sich an einen Fachmann.
  40. 40 Schließlich gibt es ein paar andere Sicherheitsmaßnahmen, die Sie selbst erforschen und erforschen können. Denken Sie daran, dass ein Hacker leicht eine Kopie Ihrer Webseite speichern kann, dann ändern Sie die HTML und Javascript, und laden Sie die Seite erneut hoch. Daher ist es am besten, JavaScript für die Eingabeüberprüfung niemals allein zu verwenden, da es einfach entfernt werden kann und stattdessen jede Java-Skriptvalidierung mit ASP-Validierung dupliziert wird. Außerdem sind versteckte Eingabefelder eine Bedrohung auf die gleiche Weise, da sie leicht geändert werden können, um gefälschten Code einzuschließen. Weitere Tipps: Geben Sie niemals Hinweise auf Ihre Datenbank, einschließlich der Namen der Eingabefelder und der Namen der Datenbankfelder. Legen Sie immer eine maximale Länge für Eingaben fest und kürzen Sie den Überschuss.
  41. 41 Weitere Informationen zu erweiterten Sicherheitstechniken finden Sie in den Ressourcen am Ende dieses Artikels. Zu den behandelten Themen gehören Kennwortrichtlinien, Pufferüberlauf, Namen von Creative-Tabellen und -Spalten, Aliase von Tabellennamen, Festlegen und Überprüfen von Datentypen, BAK-Dateien, gespeicherte Prozeduren mit Parametern und Protokolldateien.