这是Spring Security CSRF Protection的工作原理吗?

时间:2016-11-22 16:23:15

标签: angularjs spring-mvc spring-security spring-boot csrf

我查看了以下SO示例,该示例说明必须在URL发布数据中放置唯一令牌。

这样,如果有人创建了像http://example.com/vote/30这样的网址,那么它就不会工作,因为它不包含唯一令牌。

我也正在阅读这个tutorial,它在标题中放置了一个XSRF-TOKEN。我只是好奇这是如何提供保护的,因为如果用户已登录并点击http://example.com/vote/30,该请求仍然无法通过?

换句话说,如果我已登录并且有人在电子邮件中向我发送http://example.com/vote/30链接并点击它,那么该链接仍然无法通过CSRF检查,或浏览器是否会发送所需的标题,因为链接很可能会在新标签中打开?

似乎点击链接时新选项卡将请求页面。但是,新的浏览器窗口与登录的浏览器窗口不具有相同的XSRF-TOKEN?我理解正确吗?

1 个答案:

答案 0 :(得分:1)

CSRF

上面的这篇文章很好地解释了CSRF攻击的样子。基本前提是您不希望恶意网站使用您在其他网站上的有效会话。您可以使用CSRF令牌来防止这种情况。恶意网站无法访问此令牌,因此他们无法代表您发出任何POST请求。

Spring Security CSRF

使用Spring Security时,默认情况下启用CSRF保护。使用受支持的HTML模板引擎(如Thymeleaf)时会自动配置令牌,但您可以按照文档轻松自行设置。