在php中转义输入

时间:2010-10-04 18:16:11

标签: php input escaping

我写了一个代码..但是现在我不知道哪个版本更好一个..有没有可能第一版我的代码容易受到攻击?

版本1:

$destination = $_POST['var'];
$destination = strip_tags(trim($destination));

第2版:

$destination = strip_tags(trim($_POST['var']));

6 个答案:

答案 0 :(得分:4)

由于strip_tagstrim都没有更改输入字符串,因此两个版本之间绝对存在无差异

答案 1 :(得分:0)

它们都完全相同。
你有什么逃避输入的?数据库? XSS?

答案 2 :(得分:0)

两个片段完全相同。有些人会说第一个更好的可读性,有些人会说第二个更好的简洁性。

答案 3 :(得分:0)

两个版本都意味着SAME,你可以使用任何版本。在我看来,你必须使用filter_var来过滤输入字符串......

答案 4 :(得分:0)

两个版本在漏洞方面都是相同的。如果注入是你担心的,你可能想要包含addslashes()。

哪个更好?版本2实际上会更快地进行基准测试。将变量设置为另一个变量只是该过程中不必要的步骤。我建议版本1虽然在技术上不是错误的,但却是不好的做法。即使结果值相同。

答案 5 :(得分:-2)

好吧,strip_tags仍然可以被利用。稍微好一些的解决方案可能如下:

$destination = htmlentities(trim($_POST['var']));

然而,这仍然不够,如果$ _POST ['var']将进入数据库,应该做额外的工作。

确保您在生产级别的代码中实现htmlentities之前完全了解htmlentities()的作用。