使用$ _REQUEST数据是错误的吗?

Tyl*_*ter 5 php authentication forms-authentication

所以,我编写了一段时间(2年),我有一个非常主观的问题:

使用$ _REQUEST数据是错误的吗?

这主要涉及到认证方式.

如果您考虑数据可以出现的3种方式$_REQUEST,它可以来自cookie,表单或查询字符串.现在,我知道大多数人直接从任一抢信息$_POST或者$_GET使用$_COOKIE,只有当他们正期待一个cookie.

我的理论是,实际上,这些数据应该没有任何区别,如果你更换$_POST$_GET使用它,它不应该有任何区别$_REQUEST.

如果您正在验证用户进入系统,它真正重要的,如果认证细节都包含在中$_POST$_GET数组?哎呀,如果他们中的$_COOKIE任何一个都可能无关紧要.他们仍然会为您提供登录站点的凭据,您应该检查其是否正确,如果是,请将其登录.

现在,如果您尝试使用通过查询字符串提交数据的登录表单,我确实意识到存在安全问题,但我不认为这与问题有关.此外,如果某人登录失败次数过多,则应设置适当的限制以避免服务器过载.

我想在此就此发表意见.

社区Wiki为了好的衡量标准.


哦,顺便说一句,如果您有其他问题,请参阅其他StackOverflow问题 $_REQUEST

为什么我应该使用$ _GET和$ _POST而不是$ _REQUEST? 何时以及为什么要使用$ _REQUEST而不是$ _GET/$ _POST/$ _COOKIE?

Sev*_*Sev 14

在"良好"的编码实践中,您希望尽可能消除歧义.

由于$ _REQUEST默认包含来自$ _POST,$ _GET和$ _COOKIE的数据,因此存储使用$ _REQUEST检索的数据的变量所持有的值将不明确它来自哪个方法.

如果我们更具体,它将有利于代码的可读性,以及对逻辑的理解,并有助于将来进行调试.

(更不用说有关每种方法的安全问题,尤其是$ _GET之一)