Structured Query Language ( SQL) ist eine Methode zur Verwaltung von Daten in einer Datenbank gespeichert. SQL und verwandte Sprachen werden häufig verwendet, um Website -Abonnements und E-Commerce zu verwalten. Eine SQL-Injection ist ein Verfahren zur Verwendung eines fehlerhaften SQL-Abfrage auf einer Website , die Kontrolle über die SQL-Datenbank oder der Zugriff auf geschützte Daten wie User-Listen , Passwörter und E-Mail -Adressen zu gewinnen. Ändern Sie Ihre Programmierung Praktiken können Ihre Website von SQL-Injection- Angriffen zu schützen. Anleitung
1
Wählen Sie einen SQL -Bibliothek oder Rahmen, der nicht zulässt, dass ungeprüfte Abfragen für SQL -Injektionen. Common Weakness Enumeration empfiehlt Persistenz Schichten wie Hibernate und Enterprise Java Beans , die von SQL-Injection zu schützen, wenn installiert und ordnungsgemäß . Verwendet
2
Prozess SQL-Abfragen mithilfe von gespeicherten Prozeduren , Abfragen , die nur einen Parameter oder akzeptieren andere zubereitete Anweisungen anstelle von offenen Fragen . Vermeiden dynamisch Erstellen von SQL- Query-Strings .
3
Vermeiden Sie das Ausführen von Code mit einem übermäßigen Privilegien. Nicht alle Code muss von einem Konto mit Root- oder Administrator-Rechten ausgeführt werden. Dies wird Milderung der Schwere einer kompromittierten SQL-Abfrage.
4
Repeat Sicherheits-Check und Validierung der Eingabe sowohl auf der Client-Seite und Server-Seite. Angreifer können Werte auf der Durchreise oder auf dem Computer des Benutzers zu ändern, nachdem der Überprüfung von Eingaben durchgeführt wurde.
5
Entfliehen Sonderzeichen aus SQL-Abfragen. Dazu gehören beispielsweise Sonderzeichen wie Anführungszeichen oder Operatoren wie das Gleichheitszeichen und Leerraum.
6
Angenommen alle Eingaben bösartige oder fehlerhaft. Statt der Verwendung einer schwarzen Liste von inakzeptablen Saiten für SQL-Abfragen , verwenden Sie eine Whitelist von bekannten , gut formatierte Abfragen.
7
Grenze Eingang zu einem Satz von festen Eingabewerte , wie im Falle eines Liste der Staaten oder Länder , wenn möglich.
8
Grenze Fehlermeldungen nur minimale Informationen . Angreifer können detaillierte Fehlermeldungen , um mehr Informationen über das System zu erlangen. Melden Sie den Fehler explizit an einen Server Log anstatt Anzeige an den Benutzer .
9
Verwenden Sie eine Firewall , um gegen einige SQL -Injection-Angriffe zu verteidigen. Verwenden seriösen Firewalls, die Einrichtung und richtig gepflegt sind . Eine Firewall negiert nicht die Notwendigkeit einer angemessenen Programmierung und wird nicht von allen Schwachstellen zu schützen.