直接访问php超全球时的安全问题

时间:2013-08-28 18:00:23

标签: php security

我刚刚将我的IDE(Netbean)升级到1.7.4测试版,以测试它...现在看来,每当我访问我的超全局变量时,它都会给我一个警告。它说

  

不要直接访问supergolobal $ _POST数组

我目前正在使用此

 $taxAmount = intval(ceil($_POST['price']*($TAX-1)));

这真的有多少安全问题?

这是正确的方法吗,它会有所作为吗?

 $price = $_POST['price'];
 $taxAmount = intval(ceil($price*($TAX-1)));

2 个答案:

答案 0 :(得分:1)

不,您可以使用第一种方法,而不是使用重复数据填充内存。这里唯一关心的是在使用之前验证它,如果你将它复制到另一个变量,你也需要在它上面做同样的事情。

答案 1 :(得分:0)

我没有看到任何差异!

特别是如果您不想在sql_query中使用它。

唯一能让我思考的是,直接写在超级全局中并不常见,所以一些不好的程序员可能会把它留给未经验证的数据。

最后一件事,请务必使用'empty'或'isset'函数检查你的“$ _POST”存在。

示例:

If(!empty($_POST['price']))
     $taxAmount = intval(ceil($_POST['price']*($TAX-1)));
else
     $taxAmount = -1; //Somethings wrong.

<子> Possible duplicate