In einer bestimmten Situation
SQL -Injektion mysql_real_escape_string()
Obwohl
mysql_real_escape_string()
Sicherheitsanalyse
In einigen Szenarien kann der Angreifer einen Defekt von verwenden, der ausgewählt wird, um den Zeichensatz von ASCII -Zeichen gleichzeitig zu unterstützen (wie GBK, SJKs).
Der Angreifer kann eine effektive Last konstruieren, die eine ungültige Multi -Sequenz -Sequenz enthält (z. B. XBFX27). Daher wird SQL beim Einfügen in die Abfrage injiziert. mysql_real_escape_string()
mysql_real_escape_string()
Wenn der Angreifer den Wert von
auffestlegt, kann er den Schutz von
umgehen und alle Zeilen in der Tabelle abrufen.<code class="language-php">$login = mysql_real_escape_string($_POST['login']); $password = mysql_real_escape_string($_POST['password']); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";</code>
Linderung von Messungen $_POST['login']
\xbf\x27 OR 1=1 /*
mysql_real_escape_string()
Um diese Sicherheitsanfälligkeit zu lindern, stellen Sie sicher:
Upgrade auf eine neuere MySQL -Version: Die neuere MySQL -Version (z. B. MySQL 5.1) enthält Reparaturverfahren für dieses spezifische Problem.
Verwenden Sie sichere Zeichensätze:
Verwenden Sie einen Zeichensatz nicht unterstützt und Zeichensatz als gültiges Zeichen (z. B. UTF8, Latin1).Das obige ist der detaillierte Inhalt vonKann SQL-Injection „mysql_real_escape_string()' unter bestimmten Zeichensatzbedingungen umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!