为什么使用$ _GET ['value'] PHP函数传递密码值/重要信息不好?

时间:2011-03-24 12:21:19

标签: php web-applications

哪个更适合使用敏感信息$ _REQUEST或$ _POST?我试图尽可能安全地做到这一点,任何人都可以看到这两种功能的价值吗?

7 个答案:

答案 0 :(得分:4)

如果您没有使用SSL,那么任何人都可以轻松阅读这些内容。如果要安全地发送信息,则需要考虑安全传输,例如SSL / https://

答案 1 :(得分:3)

通过$ _GET传递它基本上意味着将其作为URL的一部分发送。

但是,$ _REQUEST和$ _POST都不安全。在发送之前加密您的数据,并确保加密密码。

答案 2 :(得分:3)

建议使用post,因为它可以防止使用密码为URL添加书签或者打开浏览器会话。

与所有安全性一样,它只是一个层 - 即使使用POST,您仍然可以使用HTTP代理检查请求,例如fiddler或查看firebug。如果您想要真正的安全性,您也应该使用SSL。

答案 3 :(得分:2)

除了其他人提到的要点之外,使用GET意味着密码将显示在日志文件中,这不是很安全,例如。

GET http://example.com/login/process?email=tom@jones.com&password=its_not_unusual

您最好的选择是使用SSL进行POST。

答案 4 :(得分:1)

使用查询字符串传递重要信息通常很糟糕,因为用户很容易修改传递的变量。后期变量不容易被篡改。

我已经看到一个网站,其中sql语句通过url传递,另一个传递php命令然后用exec()执行,这是愚蠢的超出信念。

答案 5 :(得分:0)

$_REQUEST还会返回$_POST$_GET作为$_COOKIE变量。以这种方式发送密码是一个好主意。尝试检查php中的密码并将活动用户添加到$_SESSION

答案 6 :(得分:0)

这不是用于传递内容的函数,而是用于访问传递数据的数组

应该使用POST方法并使用$_POST数组来访问发布的数据,