11 Stimmen

Wie kann ich SQL-Injection-Angriffe vermeiden?

Gestern sprach ich mit einem Entwickler, und er erwähnte etwas über die Einschränkung der Einfügungen in Datenbankfelder, z.B. Strings wie -- (minus minus).

Was ich weiß, ist, dass es ein guter Ansatz ist, HTML-Zeichen wie < , > usw. Nicht -- . Ist das wahr? Muss ich mir Sorgen machen über -- , ++ ? Handelt es sich eher um einen Mythos oder um altes Zeug?


アップデート

Vielen Dank für all die Antworten, es ist leicht zu verstehen, da ich noch ziemlich neu in diesem Bereich bin. Nun, um genauer zu sein in diesem Fall unsere Diskussion war über und C# ASP.NET MVC-Website, die wir entwickeln, so gibt es eine komplexe ein Konto eröffnen Form dort mit wichtigen Informationen, so bin ich nicht sicher, ob MVC mit Linq, um die Schnittstelle mit Datenbank bereits mit dieser Art von Schutz kommt oder nicht. Wenn also jemand einige Hinweise dazu geben könnte, wäre das großartig. Nochmals vielen Dank

1voto

AndiDog Punkte 65445

Es ist nicht gefährlich, solange Sie die Daten bei INSERT/UPDATE/... korrekt entschlüsseln.

Und das Escapen von HTML-Zeichen ist NICHT ein guter Ansatz. Stellen Sie sich vor, Sie haben eine Funktion geschrieben, die solche Zeichen maskiert, und Sie haben einen maskierten Text in der Datenbank gespeichert. Dann stellen Sie fest, dass Ihre Funktion das Zeichen '<' nicht umgeht, also ändern Sie die Funktion... was passiert nun mit den Datensätzen, die sich bereits in der Datenbank befinden? - Deren '<'-Zeichen bleiben unescaped. Also, NIEMALS Text vor der Speicherung in der Datenbank zu entschlüsseln (natürlich auch die SQL-Abfrage). Das Escapen sollte geschehen, wenn die HTML/XML/... Seite aus dem Text erzeugt wird, d.h. nach der Abfrage des Originaltextes aus der Datenbank!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X