首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTPS能防御CSRF攻击吗?

HTTPS能防御CSRF攻击吗?
EN

Stack Overflow用户
提问于 2011-12-04 04:23:15
回答 5查看 11.7K关注 0票数 14

我正在编写一个主要由ajax驱动的web应用程序,我正在研究如何保护用户免受CSRF攻击。我计划运行应用程序的页面,用户在HTTPS模式下登录以完成其工作。

在HTTPS上运行页面是否可以防御CSRF攻击?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-04 04:26:04

不,在HTTPS上运行页面并不能保护它免受CSRF的攻击。浏览器和服务器之间的通信是加密的,这一事实与CSRF无关。

我建议阅读preventing CSRF上的OWASP指南。

票数 21
EN

Stack Overflow用户

发布于 2011-12-04 04:53:06

一个通用的金科玉律是:

永远不要相信传入的客户端请求是合法的。始终保持怀疑,并假设请求可能是恶意伪造的。

除了提到的OWASP文章之外,还有一些具体的规则:

  1. 如果您的数据需要身份验证/授权,请避免在服务器上使用通用接口,如CRUD接口。容易编码,很难授权来自客户端的特定请求。相反,应该提供一个SOA风格的接口,其中包含专门用于特定用例的显式方法,在这些用例中,您可以直接控制请求及其参数。

http://msdn.microsoft.com/en-us/library/ms954638.aspx

  1. 即使框架提供了对请求有效性的某种控制(ASP.NET视图状态),也要再次检查用户是否有权传递传入参数集。
票数 2
EN

Stack Overflow用户

发布于 2020-10-24 00:57:16

我试着解释一下:

·HTTPS阻止同一网络中的人获取您的会话密钥/id。假设他们获取了您的会话标识密钥/id,那么如果需要,他们可以伪造您的IP,并将他们想要的所有POST请求发送回服务器。使用HTTPS,所有HTTP正文(整个"HTML")都是加密的。因此,没有会话密钥被猜测。

·在CSRF中发生的情况是,用户点击一个链接,这也会创建一个到另一个服务器的请求并与之通信,比如使用用户的会话,但不在同一网络上。意味着它不能监听服务器回复给用户的内容。如果攻击者知道回复,并且可以与之交流,就好了。没问题。用户账户上没有钱了。但是,如果服务器向与会话关联的IP发送随机令牌,则攻击者无法在不同的网络上猜到它!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8370723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档