最近,我从Dreamweaver转向了Netbeans,随着对干净代码的内置问责,我意识到我在编写正确/干净的代码方面还有一些工作要做。
目前,我正试图从直接访问SuperGlobals (如$_POST)中进行调整。具体来说,对于这个问题,我试图弄清楚如何暂时撤消SuperGlobal变量。
$sampleArray = ["Designer_Name" => "someName",
"Designer_Key" => "someName's UID",
"Designer_Store" => "someStoreName",
"Group_Name" => "someGroupName",
"Dropbox_Key" => "someUID"
];通常,我可能会做这样的事情:
unset($_POST['Dropbox_Key']);在这个特殊的问题中,我试图使用短数量的代码。我知道我可以过滤/净化数组的每个元素,并将其赋值给一个变量,但是由于$_POST数组不是用户输入,所以我不太关心这个问题。
使用这个数组,我将把整个数组插入到一个数据库表中,减去最后一个元素。对于与数组的其他部分相同的表,我不需要“Dropbox_Key”。稍后,我将在另一个表中使用该元素。
插入代码如下所示:
$insert = $dbs->insert('sometable', filter_input_array(INPUT_POST));因此,我要问的问题是,尽管忽略netbeans关于访问SuperGlobals的警告比较容易,但是否有什么当前/更干净的方法来实现我的意愿(取消$_POST元素),还是忽略警告是这里的最佳方式?
发布于 2017-04-28 23:47:15
我们在超级全局输入上使用filter_input()的原因就像$_POST一样,因为它往往是用户输入的数据,我们无法信任。通过过滤,我们可以转义和净化输入,以帮助防止XSS (跨站点脚本)和SQL注入。
在您自己的代码中不设置超级全局的情况下,不存在任何风险(您控制您的代码),因此我们可以安全地取消直接设置unset($_POST['Dropbox_Key']);。
https://stackoverflow.com/questions/43690266
复制相似问题