Spring Security 如何预防CSRF跨域攻击?( 四 )


  • 将CSRF令牌放入 body
第一种选择是在请求正文中包含实际的CSRF令牌 。通过将CSRF令牌放入正文中,将在执行授权之前读取正文 。这意味着任何人都可以在您的服务器上放置临时文件 。
但是,只有授权用户才能提交由您的应用程序处理的文件 。
通常,这是推荐的方法,因为临时文件上传对大多数服务器的影响可以忽略不计 。
  • 在网址中包含CSRF令牌
如果不允许未经授权的用户上传临时文件,则可以选择将预期的CSRF令牌作为查询参数包括在表单的action属性中 。
这种方法的缺点是查询参数可能会泄漏 。
更一般而言,将敏感数据放置在正文或标题中以确保不泄漏是最佳实践 。
  • HiddenHttpMethodFilter
在某些应用程序中,可以使用form参数来覆盖HTTP方法 。
例如,下面的 form 可用于将HTTP方法视为删除而不是 post 。
<form action="/process"    method="post">    <!-- ... -->    <input type="hidden"        name="_method"        value=https://www.isolves.com/it/wl/aq/2021-01-15/"delete"/>覆盖HTTP方法在过滤器中进行 。该过滤器必须放在Spring Security支持之前 。
请注意,覆盖仅发生在帖子上,因此实际上不太可能引起任何实际问题 。
但是,仍然最好的方法是确保将其放置在Spring Security的过滤器之前 。
小结希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波 。
我是老马,期待与你的下次相遇 。




推荐阅读