Strings ohne Datenbankkonnektivität maskieren
Frage:
Wie kann ich Strings ohne korrektes Escapezeichen versehen? Datenbankverbindung herstellen? Ich benötige diese Funktionalität für Trockentestzwecke, um SQL-Injection-Schwachstellen zu vermeiden.
Antwort:
Bedauerlicherweise ist es nicht möglich, Zeichenfolgen sicher zu entkommen, ohne eine Verbindung zu einer Datenbank herzustellen. Sowohl mysql_real_escape_string() als auch vorbereitete Anweisungen basieren auf einer Datenbankverbindung, um den Escape-Mechanismus an den spezifischen Zeichensatz der Zieldatenbank anzupassen. Wenn Sie diese Verbindung vernachlässigen, ist Ihre Anwendung SQL-Injection-Angriffen ausgesetzt, insbesondere solchen mit Multibyte-Zeichen.
Überlegungen zum Testen:
Wenn Ihr primäres Ziel das Testen ist, könnten Sie darauf zurückgreifen zu mysql_escape_string(). Obwohl es nicht narrensicher gegen SQL-Injection-Angriffe ist, bleibt es aufgrund des Mangels an sichereren Alternativen ohne Datenbankverbindung eine praktikable Option. Es wird jedoch dringend davon abgeraten, mysql_escape_string() in Produktionsumgebungen zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings für Trockentests ohne Datenbankverbindung sicher entkommen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!