Frage

Ich habe viele Artikel und Fragen zu mysqli gesehen, und alle von ihnen behaupten, dass es gegen SQL-Injektionen schützt. Aber ist es narrensicher, oder gibt es noch eine Möglichkeit, um es zu bekommen. Ich bin in der Cross-Site-Scripting oder Phishing-Attacken nicht interessiert, nur SQL-Injektionen.

Was ich habe gesagt, sollte zu beginnen ist, dass ich vorbereitete Anweisungen verwenden. Das ist, was ich mit mysqli gemeint. Wenn ich vorbereitete Anweisungen ohne String-Verkettung verwenden, dann ist es narrensicher?

War es hilfreich?

Lösung

  

Aber ist es narrensicher, oder gibt es noch eine Möglichkeit, um es zu bekommen.

Nein, müssen Sie wissen, was Sie tun. Wenn Sie gebundene Parameter verwenden (Ein Feature, das MySQLi mit kommt), sind Sie ganz sicher vor Injektion Attacken von diesem Angriffsvektor . Dies gilt nicht verhindern - der Programmierer - von Strings direkt einbetten und dadurch Injection-Angriffe ermöglicht. Sie haben die Funktion nutzen zu können, wie beabsichtigt.

Re: Bearbeiten

  

Was ich habe gesagt, sollte zu beginnen ist, dass ich vorbereitete Anweisungen verwenden. Das ist, was ich mit mysqli gemeint. Wenn ich vorbereitete Anweisungen ohne String-Verkettung verwenden, dann ist es narrensicher?

narrensicher ist immer noch ein so gefährliches Wort. Aber Sie sind sicher vor Injection-Angriffe für die Variablen, die durch vorbereitete Anweisungen gebunden sind. Dies liegt daran gebundene Parameter getrennt von der SQL-Abfrage übertragen werden. Mit dem „traditionellen“ embed-string Ansatz muss der Datenbankserver den Eingang und es gibt viele Grenzfälle, dass (Charsets etc.) analysieren. Wenn die Daten und die Abfrage werden getrennt gesendet wird, gibt es keine eigentlichen Parsen gehen (zumindest nicht der variablen Daten-Parsing).

Andere Tipps

Es schützt nicht vor SQL-Injektionen besser als der alte MySQL-Modul, macht nur tun, es einfacher für die Entwickler, die jetzt vorbereitete Anweisungen statt Aufruf mysql_real_escape_string verwenden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top