会话验证中的GET与POST

时间:2014-06-27 15:42:39

标签: security validation rest post get

所以我刚读了Jeff Atwood撰写的this文章,我想确保我理解它是如何适用于我的用例的。我正在尝试验证静默登录的会话。出于安全考虑,这应该使用POST权限吗?有关系吗?我只是从cookie传递sessionID和用户名。

1 个答案:

答案 0 :(得分:1)

对于CSRF(跨站点请求伪造),您可以让用户在他们登录的任何站点上执行任何操作,前提是该操作仅需要GET。强制通过POST请求完成此操作会破坏在其他页面中嵌入图像,脚本标记的方法。

在这种情况下,即使POST也不完全安全。还有其他方法可以使用POST在站点上安装CSRF攻击。 Clickjacking / UI-Redressing使另一个网站可以欺骗用户将表单提交到其他网站。

基本上,验证的最佳方法是添加自动生成的隐藏表单元素。您可以将其存储在会话数据中(例如:PHP的$_SESSION),这样您只需要在会话开始时生成令牌。当然,攻击可以尝试做一些像clickjacking(上面提到的)结合iframe直接指向你的网站,可能还有一些JS来隐藏一些东西。

对于任何重要的事情,您应该重新提示用户输入密码,从而大大降低任何成功的CSRF攻击的价值。