1

我对这些神奇的引语感到困惑。
它们在我的服务器上启用,我的问题是我应该使用以下功能禁用它们:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
}

清理我的输入,或者我应该把所有的工作留给魔术引号。
我正在练习一些 sql 注入(用于学习目的),当魔术引号打开时,我什么也做不了,但是当我使用上面的代码时,我可以进行 sql 注入。
所以我应该坚持使用魔术引号还是使用这样的功能:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
 $cleanUsername=mysql_real_escape_string($username);
 $cleanPassword=mysql_real_escape_string($password);
}

我在清理输入方面没有太多经验,所以请提供任何帮助:(

4

1 回答 1

1

魔术引号已被弃用,将从下一个版本的 PHP(PHP 5.4)中删除,因此您不应依赖它们。(参见http://www.php.net/manual/en/security.magicquotes.php)防止 SQL 注入的最好方法是使用 PDO 和准备好的语句。有关更多信息,请参见http://fr2.php.net/manual/en/pdo.prepared-statements.php,如果需要更多信息,请在 google 上搜索教程。

于 2011-11-01T03:29:07.623 回答