Heim >Backend-Entwicklung >PHP-Tutorial >Reichen „mysql_real_escape_string()' und „mysql_escape_string()' aus, um Ihre Anwendung zu sichern?
Sind mysql_real_escape_string() und mysql_escape_string() ausreichend für die App-Sicherheit?
mysql_real_escape_string() ist eine häufig verwendete Funktion zur Verhinderung von SQL-Injection-Angriffen. Es ersetzt Sonderzeichen durch ihre maskierten Entsprechungen, wodurch es für einen Angreifer schwieriger wird, bösartigen SQL-Code in eine Abfrage einzuschleusen. Es ist jedoch nicht narrensicher.
Eine Einschränkung von mysql_real_escape_string() besteht darin, dass es nur variable Daten maskiert. Es ist nicht wirksam gegen Angriffe, die auf Tabellennamen, Spaltennamen oder LIMIT-Felder abzielen. Beispielsweise könnte ein Angreifer immer noch bösartiges SQL in eine Abfrage einschleusen, indem er einen LIKE-Operator verwendet, um nach einem Wert wie „%%“ zu suchen, der alle Datensätze zurückgeben würde.
Außerdem ist mysql_real_escape_string() nur gegen wirksam bekannte SQL-Injection-Angriffe. Es kann nicht vor neuen oder unbekannten Angriffen schützen, die Schwachstellen im Datenbankserver ausnutzen.
Anstatt sich auf reaktive Maßnahmen wie Escape zu verlassen, wird empfohlen, vorbereitete Anweisungen zu verwenden . Vorbereitete Anweisungen sind SQL-Anweisungen, die vom Datenbankserver vorkompiliert werden, bevor sie ausgeführt werden. Dadurch wird verhindert, dass bösartiges SQL in die Abfrage eingeschleust wird, da der Server nur die vorkompilierte Anweisung ausführt.
Vorbereitete Anweisungen sind ein proaktiver Schutz gegen SQL-Injection und andere Angriffe, da sie für die Verarbeitung von SQL konzipiert sind sichere Art und Weise. Sie sind weniger anfällig für Schwachstellen und bieten ein höheres Maß an Sicherheit als Fluchtversuche.
Das obige ist der detaillierte Inhalt vonReichen „mysql_real_escape_string()' und „mysql_escape_string()' aus, um Ihre Anwendung zu sichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!