清理数组时的安全问题(在PHP中)?

清理数组时的安全问题(在PHP中)?,php,security,Php,Security,有人能解释一下为什么$\u POST=array()不是重置$\u POST superglobal的有效方法吗 我在阅读时想到了这一点 作为一个数组,我会想象该数组的所有元素,无论是$\u POST还是任何其他元素,在重新初始化它时都会被重置。你说得对,$\u POST=array()正在完全重置$\u POST 另一篇文章中的答案与“如何对$\u post的值进行消毒/清理”相关。你是对的,$\u post=array()正在完全重置$\u POST 另一篇文章中的答案与“如何消毒/清理$”

有人能解释一下为什么
$\u POST=array()
不是重置$\u POST superglobal的有效方法吗

我在阅读时想到了这一点


作为一个数组,我会想象该数组的所有元素,无论是$\u POST还是任何其他元素,在重新初始化它时都会被重置。

你说得对,
$\u POST=array()正在完全重置
$\u POST


另一篇文章中的答案与“如何对
$\u post的值进行消毒/清理”相关。

你是对的,
$\u post=array()正在完全重置
$\u POST


另一篇文章中的答案与“如何消毒/清理
$”的值有关

unset($\u POST)将重置超全局设置,有效地擦除其中的任何值

跨站点脚本是一个广泛的主题,您将无法独自完成筛选

请在此处查看XSS备忘单:

+有关制定反XSS措施的更多信息,请参见:
你的问题是什么

unset($\u POST)将重置超全局设置,有效地擦除其中的任何值

跨站点脚本是一个广泛的主题,您将无法独自完成筛选

请在此处查看XSS备忘单:

+有关制定反XSS措施的更多信息,请参见:

此行
$\u POST=array()
会完全重置
$\u POST
数组

我想你对所提到的问题有误解。该脚本的目标不是清空
$\u POST
,而是清理值

t完全尝试清理
$\u POST
中的值(因为它们是用户输入),以便在执行DB操作时能够“安全”地进一步使用它们


这就是他使用(转义字符串中的特殊字符以便在SQL语句中使用)的原因
会完全重置
$\u POST
数组

我想你对所提到的问题有误解。该脚本的目标不是清空
$\u POST
,而是清理值

t完全尝试清理
$\u POST
中的值(因为它们是用户输入),以便在执行DB操作时能够“安全”地进一步使用它们


这就是他使用(转义字符串中的特殊字符以用于SQL语句)的原因。

据我所知,这就可以了。应该注意的是,这只会清除POST信息,而不是GET。我要问的问题是为什么?据我所知,那就行了。应该注意的是,这只会清除POST信息,而不是GET。我要问的问题是为什么?

可能它无效,因为它阻止您访问任何表单输入字段,并有效地使$\u POST无效?@oggy:这取决于您计划如何使用它。这是您要键入的代码,以及要实现的逻辑。如果每个操作只能在一种情况下使用,编程和脚本编写将失去其目的。您只提到了数千种可能性中的一种。可能它不有效,因为它阻止您访问任何表单输入字段,并有效地使$\u POST变得无用?@oggy:这取决于您计划如何使用它。这是您要键入的代码,以及要实现的逻辑。如果每个操作只能在一种情况下使用,编程和脚本编写将失去其目的。你只提到数千种可能性中的一种。哦,那是我的误解。哦,那是我的误解。实际上,这都是我的误解。我认为他们在另一个话题中要求的是完全重置。实际上,这完全是我的误解。我认为完全重置是他们在另一个主题中要求的。