我从来没有在魔术引号打开的环境中进行编程。现在我正在研究一个项目。这就是我一直在设置用户接受的数据情况:当启用魔术引号PHP魔术引号问题
$first_name = $_POST['first_name']
if(!get_magic_quotes_gpc()) {
$first_name = mysql_real_escape_string($first_name);
}
随着该过滤,我还在开放的SQL注入攻击?
我真的只关心任何类型的SQL注入将打破我的查询...其他白名单,htmlspecialchar()等等在其他地区的地方。
看着一些类似的SO问题,似乎建议您改为检查魔术引号,如果数据打开时对数据运行“stripslashes”,然后始终运行转义函数。我有点担心要这样做,因为网站中现有的所有代码都假设它已启用。
谢谢!
我可以建议你跑步吗? – 2011-05-22 21:59:16
'magic_quotes'-setting =>'addslashes()'!='mysql_escape'。这是两件不同的事情。阅读php.net/security.magicquotes.what – KingCrunch 2011-05-22 22:02:15
我对这个问题的倒退感到失望;这些投票的目的是为了解决问题的质量,而不是问题中编码机制的优点。建议开启Magic Quotes的_answer可能值得赞赏,但这个问题已经得到很好的解答,而这个可怜的人需要安全地使用代码,这些代码应该可以被批量替换(如果我们生活在一个完美的世界中......) – sarnold 2011-05-22 22:11:43