Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
直接访问php superglobal时的安全问题_Php_Security - Fatal编程技术网

直接访问php superglobal时的安全问题

直接访问php superglobal时的安全问题,php,security,Php,Security,我刚刚将我的IDE(Netbean)升级到1.7.4测试版,以测试它。。。现在似乎每当我访问超全局变量时,它都会给我一个警告。上面说 请勿直接访问supergolobal$\u POST阵列 我目前正在使用这个 $taxAmount = intval(ceil($_POST['price']*($TAX-1))); 这到底有多大的安全隐患 这是正确的方法吗?这会有什么不同吗 $price = $_POST['price']; $taxAmount = intval(ceil($price

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

请勿直接访问supergolobal$\u POST阵列

我目前正在使用这个

 $taxAmount = intval(ceil($_POST['price']*($TAX-1)));
这到底有多大的安全隐患

这是正确的方法吗?这会有什么不同吗

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

不,您可以使用第一种方法,而不使用重复数据填充内存。这里唯一需要考虑的是在使用之前验证它,如果您将它复制到另一个变量,您也需要对它执行相同的操作。

我看不出有任何区别

特别是如果您不想在sql_查询中使用它

唯一让我思考的是,直接在超全局中编写并不常见,因此一些糟糕的程序员可能会留下未经验证的数据

最后一件事,请确保使用“empty”或“isset”函数检查“$\u POST”是否存在

例如:

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

显然,netbeans希望您使用
filter\u input()
。我不知道为什么这是一件如此糟糕的事情,特别是如果你自己正在清理数据的话。