我想让我的php脚本更安全。
因为我得到了一个包含大量帖子变量的表格,所以我不想检查每个变量。
在stackoverflow上我发现这个帖子在一个帖子但是得分为-2所以我认为这不安全但是我找不到任何理由为什么它不安全
foreach($_POST as $key => $value)
{
$value = filter_var($value, FILTER_SANITIZE_STRING);
$value = mysql_real_escape_string($value);
$_POST[$key] = $value ;
}
此脚本是否安全,以使$_POST
变量安全?
编辑安全以在sql语句中使用
答案 0 :(得分:1)
有点过头了,但应该保证你的安全。
但是,为简化起见,您应该考虑使用预处理语句。强烈建议。
请参阅:How can I prevent SQL injection in PHP?
另外,遇见我的好友Bobby:http://bobby-tables.com/
这些应该足以让你开始。
答案 1 :(得分:0)
这不是很好,但是......没有一个解决方案可以解决所有问题,而且你还没有说明任何问题需要解决。这里有一些可能对你有用的指示。
mysql_real_escape_string
已弃用,另外它不会使您的变量在php代码中安全使用,只是复制/粘贴sql语句字符串。它也没有连接使用,所以不能考虑字符集(除非碰巧有全局连接,这是另一个坏主意)
就我个人而言,我认为更改$_POST
中的值是一种不好的做法,因为现在您不知道您的用户实际发布了什么。
然而;如果你取出mysql_real_escape_string
(只在下一个语句中使用数据库时才这样做)并将更改的值写入另一个数组并从代码中读取(即不是{{ 1}})它可以非常适合你的情况。