Heim >häufiges Problem >Wie kann man sich gegen SQL-Injection-Angriffe verteidigen?

Wie kann man sich gegen SQL-Injection-Angriffe verteidigen?

ChipsDie
ChipsDieOriginal
2019-05-16 18:13:4646707Durchsuche

Was ist ein SQL-Injection-Angriff?

SQL-Injection ist eine Angriffsmethode, die SQL-Code zu Eingabeparametern hinzufügt und ihn zur Analyse und Ausführung an den SQL-Server übergibt. Wie kann man sich gegen SQL-Injection-Angriffe verteidigen?

Wie erfolgt die SQL-Injection?

1. Webentwickler können nicht garantieren, dass alle Eingaben gefiltert wurden.

2. Der Angreifer verwendet die an den SQL-Server gesendeten Eingabedaten, um ausführbaren Code zu erstellen.

3. Die Datenbank verfügt nicht über eine entsprechende Sicherheitskonfiguration (legen Sie ein bestimmtes Datenbankkonto für die Webanwendung fest, anstatt das Root- oder Administratorkonto zu verwenden. Das spezifische Datenbankkonto erteilt Berechtigungen für einige einfache Vorgänge und recycelt einige Vorgänge wie (Drop-)Berechtigungen).

SQL-Injection-Angriffsabwehr

1. Verwenden Sie parametrisierte Filteranweisungen

Um SQL-Injection zu verhindern, können Benutzereingaben nicht direkt in die SQL eingebettet werden Stellungnahme. Stattdessen müssen Benutzereingaben gefiltert oder parametrisiert werden. Parameteranweisungen verwenden Parameter, anstatt Benutzereingaben in die Anweisung einzubetten. In den meisten Fällen ist die SQL-Anweisung korrekt. Die Benutzereingabe ist dann auf einen Parameter beschränkt.

Generell gibt es zwei Möglichkeiten, um sicherzustellen, dass Ihre Anwendung nicht anfällig für SQL-Injection-Angriffe ist. Die eine besteht darin, die Codeüberprüfung zu verwenden, die andere darin, die Verwendung parametrisierter Anweisungen zu erzwingen. Das Erzwingen der Verwendung parametrisierter Anweisungen bedeutet, dass in Benutzereingaben eingebettete SQL-Anweisungen zur Laufzeit abgelehnt werden. Derzeit gibt es jedoch nicht viel Unterstützung für diese Funktion.

2. Vermeiden Sie die Verwendung von Interpretern, die von Hackern zur Ausführung illegaler Befehle verwendet werden.

3. Verhindern Sie die SQL-Injection, aber vermeiden Sie auch einige detaillierte Fehlermeldungen, da Hacker diese Nachrichten verwenden können. Zur Überprüfung der Länge, des Typs, der Anweisungen und der Unternehmensregeln aller Eingabedaten werden standardmäßige Eingabevalidierungsmechanismen verwendet.

4. Verwenden Sie professionelle Tools zum Scannen von Schwachstellen.

Es reicht jedoch nicht aus, SQL-Injection-Angriffe zu verhindern. Angreifer suchen nun automatisch nach Zielen und greifen diese an. Seine Techniken lassen sich sogar problemlos auf Schwachstellen in anderen Webarchitekturen anwenden. Unternehmen sollten in professionelle Tools zum Scannen von Schwachstellen investieren, beispielsweise in den berühmten Accunetix Network Vulnerability Scanner. Ein perfekter Schwachstellenscanner unterscheidet sich von einem Netzwerkscanner dadurch, dass er speziell nach SQL-Injection-Schwachstellen auf Websites sucht. Die neuesten Schwachstellenscanner finden die zuletzt entdeckten Schwachstellen.

5. Schließlich führen Unternehmen in allen Phasen des Webanwendungsentwicklungsprozesses Codesicherheitsprüfungen durch. Erstens sollten vor der Bereitstellung von Webanwendungen Sicherheitstests durchgeführt werden, die wichtiger und weitreichender sind als zuvor. Unternehmen sollten Websites nach der Bereitstellung auch mit Tools zum Scannen von Schwachstellen und Tools zur Site-Überwachung testen.

Das obige ist der detaillierte Inhalt vonWie kann man sich gegen SQL-Injection-Angriffe verteidigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn