Aay*_*mar 10 ruby-on-rails csrf protect-from-forgery csrf-protection ruby-on-rails-3.1
据我所知,默认情况下Rails没有CSRF
对HTTP GET
请求的保护,因为它声称它们是幂等的.但是,从这些GET请求返回给用户的敏感信息,我不希望恶意站点检索此信息.
在Rails中保护HTTP GET
请求的最佳方法是什么CSRF
?
Gum*_*mbo 10
为了能够读取对CSRF攻击请求的响应,攻击者需要让受害者执行他的JavaScript代码.在这种情况下,访问将受到某些同源策略的限制.
假设攻击请求,真的是十字出身,在对DOM同源策略禁止通过DOM访问(例如,当使用嵌入iframe
)和跨域资源共享(CORS)通过调节跨域请求的XMLHttpRequest如下:
如果请求是简单的跨源请求,i.即 只有简单的头字段的简单方法,然后将发送该请求(这类似于基于HTML的CSRF).但访问简单的跨源请求的响应取决于响应是否允许资源共享.
其他跨源请求在发送实际请求之前需要所谓的预检.发送该请求以检查服务器是否允许来自发送预检的来源的请求.并且只有在预检成功并且对实际请求的响应允许资源共享时,才能访问响应.
总而言之:除非您的服务器支持CORS并且明确允许与任何其他来源共享(即Access-Control-Allow-Origin: *
,如果请求被允许),CSRF响应将不会被攻击站点读取.
归档时间: |
|
查看次数: |
2403 次 |
最近记录: |