我刚刚将我的IDE(Netbean)升级到1.7.4测试版,以测试它...现在看来,每当我访问我的超全局变量时,它都会给我一个警告。它说
不要直接访问supergolobal $ _POST数组
我目前正在使用此
$taxAmount = intval(ceil($_POST['price']*($TAX-1)));
这真的有多少安全问题?
这是正确的方法吗,它会有所作为吗?
$price = $_POST['price'];
$taxAmount = intval(ceil($price*($TAX-1)));
答案 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 子>