Heim > Artikel > Backend-Entwicklung > PHP-Anti-SQL-Injection-Methode
So verhindern Sie die SQL-Injection in PHP: 1. Verwenden Sie die Methode mysql_real_escape_string, um Sonderzeichen in der in der SQL-Anweisung verwendeten Zeichenfolge zu maskieren. 2. Aktivieren Sie magic_quotes_gpc, um die SQL-Injection durch benutzerdefinierte Funktionen zu verhindern.
Empfohlen: „PHP-Video-Tutorial“
So verhindern Sie SQL-Injection mit PHP+Mysql
In diesem Artikel wird die Methode zur Verhinderung von SQL-Injection mit PHP+Mysql vorgestellt:
Methode 1:
mysql_real_escape_string – Escape-Sonderzeichen in Zeichenfolgen, die in SQL-Anweisungen verwendet werden, unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung!
$sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_real_escape_string($pw)."' limit 1";
Methode 2:
Öffnen Sie magic_quotes_gpc, um SQL-Injection zu verhindern. In php.ini gibt es eine Einstellung: magic_quotes_gpc = Off. Diese ist standardmäßig deaktiviert. Wenn sie aktiviert ist, wird die vom Benutzer übermittelte SQL-Abfrage automatisch konvertiert, z. B. in „usw.“. eine wichtige Rolle bei der Verhinderung von SQL-Injection.
Wenn magic_quotes_gpc=Off, verwenden Sie die Funktion addslashes().
Methode 3:
Benutzerdefinierte Funktion
/** * 防止sql注入自定义方法一 * author: xiaochuan * @param: mixed $value 参数值 */ function check_param($value=null) { # select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile $str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile'; if(!$value) { exit('没有参数!'); }elseif(eregi($str, $value)) { exit('参数非法!'); } return true; } /** * 防止sql注入自定义方法二 * author: xiaochuan * @param: mixed $value 参数值 */ function str_check( $value ) { if(!get_magic_quotes_gpc()) { // 进行过滤 $value = addslashes($value); } $value = str_replace("_", "\_", $value); $value = str_replace("%", "\%", $value); return $value; } /** * 防止sql注入自定义方法三 * author: xiaochuan * @param: mixed $value 参数值 */ function post_check($value) { if(!get_magic_quotes_gpc()) { // 进行过滤 $value = addslashes($value); } $value = str_replace("_", "\_", $value); $value = str_replace("%", "\%", $value); $value = nl2br($value); $value = htmlspecialchars($value); return $value; }
Oben finden Sie die Details, wie Sie die SQL-Injection in PHP+Mysql verhindern können
Das obige ist der detaillierte Inhalt vonPHP-Anti-SQL-Injection-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!