Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 会话验证中的GET与POST_Security_Validation_Rest_Post_Get - Fatal编程技术网

Security 会话验证中的GET与POST

Security 会话验证中的GET与POST,security,validation,rest,post,get,Security,Validation,Rest,Post,Get,所以我刚刚读了Jeff Atwood的文章,我想确保我正确地理解它如何应用于我的用例。我正在尝试验证静默登录的会话。为了安全起见,这应该通过POST来完成,对吗?这有关系吗?我只是从cookie中传递sessionID和用户名 当涉及到CSRF(跨站点请求伪造)时,您可以让用户在其登录的任何站点上执行任何操作,只要该操作只需要GET。强制在POST请求上执行此操作会破坏在另一个页面中嵌入图像、脚本标记等内容的方法 在这种情况下,即使是POST也不是完全安全的。还有其他方法可以使用POST在站点上

所以我刚刚读了Jeff Atwood的文章,我想确保我正确地理解它如何应用于我的用例。我正在尝试验证静默登录的会话。为了安全起见,这应该通过POST来完成,对吗?这有关系吗?我只是从cookie中传递sessionID和用户名

当涉及到CSRF(跨站点请求伪造)时,您可以让用户在其登录的任何站点上执行任何操作,只要该操作只需要GET。强制在POST请求上执行此操作会破坏在另一个页面中嵌入图像、脚本标记等内容的方法

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

基本上,验证的最佳方法是添加自动生成的隐藏表单元素。您可以将其存储在会话数据中(例如:
$\u session
for PHP),这样您只需要在会话开始时生成令牌。当然,攻击可以尝试执行类似于点击劫持(如上所述)的操作,并结合直接指向站点的iframe和一些JS来隐藏一些东西

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