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

时间:2009-10-22 23:53:59

标签: php security

有人可以解释为什么$_POST= array();不是重置$ _POST超全球的有效方法吗?

我在阅读this question时想到了这一点。

作为一个数组,我想这个数组的所有元素,无论是$ _POST还是其他任何元素,都会在重新初始化时重置。

4 个答案:

答案 0 :(得分:3)

您是对的,$_POST= array();完全重置了$_POST

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

答案 1 :(得分:1)

此行$_POST=array();完全重置了$_POST数组。

我想你提到的问题存在误解。该脚本的目标不是清空$_POST,而是清理值。

tscully 尝试清理$_POST中的值(因为它们是用户输入的),以便在进行数据库操作时能够“安全地”使用它们。

这就是为什么他使用mysql_real_escape_string(在字符串中转义特殊字符以用于SQL语句)。

答案 2 :(得分:0)

你的问题究竟是什么?

unset($ _ POST)正在重置超全局,有效地删除其中的任何值。

跨站点脚本是一个广泛的主题,你将无法自己进行过滤。

在这里查看此XSS备忘单: http://ha.ckers.org/xss.html

+有关开发反XSS措施的更多信息: http://hungred.com/web-development/solutions-crosssite-scripting-xss-attack/

答案 3 :(得分:0)

据我所知,那样做会。应该注意的是,这只会清除POST信息,而不是GET。我不得不问的问题是为什么?