Heim > Datenbank > MySQL-Tutorial > Sollten Backspace- und Tabulatorzeichen in SQL-Injections mit Escapezeichen versehen werden?

Sollten Backspace- und Tabulatorzeichen in SQL-Injections mit Escapezeichen versehen werden?

Linda Hamilton
Freigeben: 2024-10-28 04:09:30
Original
215 Leute haben es durchsucht

 Should Backspace and Tab Characters Be Escaped in SQL Injections?

Sonderzeichen in SQL-Injections maskieren

Um SQL-Injections zu verhindern, ist es wichtig, bestimmte Zeichen zu maskieren, die die Abfrageausführung manipulieren können. Gemäß der mysql_real_escape_string()-Funktion der MySQL-API sollten diese Zeichen maskiert werden:

<pre class="brush:php;toolbar:false">0x00 : "\0",
0x08 : "\b",
0x09 : "\t",
0x0a : "\n",
0x0d : "\r",
0x1a : "\Z",
0x22 : '\"',
0x25 : "\%",
0x27 : "\'",
0x5c : "\\",
0x5f : "\_",
Nach dem Login kopieren
\n \r \ ' " \Z

Die ESAPI-Sicherheitsbibliothek von OWASP.org für Python geht jedoch über diese Zeichen hinaus und umfasst Folgendes in ihrem Codierungsmechanismus:

SELECT a FROM b WHERE c = '...user input ...';
Nach dem Login kopieren

Während es verständlich ist, warum Metazeichen wie „%“ und „_“ maskiert werden sollten, wirft die Einbeziehung von Rückschritt- (‚b‘) und Tabulatorzeichen (‘t‘) Fragen auf.

Sicherheitsbedenken bei Tabulatoren und Backspace-Zeichen

Tabulatorzeichen ('t')

Ein Tabulatorzeichen (ASCII-Code 9) bewegt den Cursor zum nächsten Tabstopp, der für ein bestimmtes System definiert ist. In einer SQL-Abfrage könnte ein Tabulator verwendet werden, um Leerzeichen einzufügen oder Daten auszurichten. Abhängig von den Tabstopp-Einstellungen könnte ein Angreifer möglicherweise eine Abfrage ändern oder Leerzeichen einfügen, was zu unbeabsichtigtem Verhalten führt.

Rücktaste ('b')

Eine Rücktaste Zeichen (ASCII-Code 8) verschiebt den Cursor um ein Zeichen nach hinten und überschreibt ihn somit. In einer SQL-Abfrage könnte eine Rücktaste verwendet werden, um zuvor eingegebene Daten zu löschen, was möglicherweise zu Injektionen oder Datenmanipulationen führen könnte.

Beispiel: Ausnutzung von Rücktastezeichen

Bedenken Sie Folgendes Abfrage:

Bobby]dor[p TA[ble[s
Nach dem Login kopieren

Wenn ein böswilliger Benutzer einen Wert mit Rückschrittzeichen eingibt, kann er möglicherweise einen Teil der Abfrage löschen, was zu einem unbeabsichtigten Verhalten führt. Wenn Sie beispielsweise diese Eingabe einfügen:

SELECT a FROM b WHERE c = 'Bobby';
Nach dem Login kopieren

Nachdem die Rücktaste die Zeichen „[dor[p TA[ble[s]“ gelöscht hat, wird die Abfrage effektiv zu:

Das ist bösartig Die Eingabe könnte möglicherweise alle Zeilen zurückgeben, in denen c gleich „Bobby“ ist, wodurch möglicherweise vertrauliche Informationen gefährdet werden.

Fazit

Escape-Tabulator- und Rücktaste-Zeichen sind zwar normalerweise nicht erforderlich, sie sind jedoch vorhanden kann in bestimmten Szenarien hilfreich sein, um SQL-Injections zu verhindern. Durch das Maskieren dieser Zeichen können Entwickler sicherstellen, dass böswillige Benutzer potenzielle Schwachstellen nicht ausnutzen können, um SQL-Abfragen zu manipulieren oder zu gefährden.

Das obige ist der detaillierte Inhalt vonSollten Backspace- und Tabulatorzeichen in SQL-Injections mit Escapezeichen versehen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage