如何知道我的CSRF是否有效?

时间:2015-06-10 15:30:26

标签: spring csrf

我正在尝试使用Spring和freemarker作为我的模板来实现CSRF。

由于freemarker的限制,我必须添加javascript函数才能使其正常工作,就像我在这里看到的那样:

http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#csrf-include-csrf-token

所以,我添加了这段代码:

$(function () {
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$(document).ajaxSend(function(e, xhr, options) {
    xhr.setRequestHeader(header, token);
});
});

据我所知,它没有添加任何内容,只是一些没有内容的元标记...而ajaxSend我不能100%确定是否正常工作,有没有办法知道它有效?

我读到默认情况下已启用CSRF。我有正确的链式过滤器(据我所知)。

我使用spring 3.2.8和security 3.2.5 with freemarker 2.3.2

有没有办法验证这个?

由于

1 个答案:

答案 0 :(得分:1)

如果要检查csrf过滤器是否阻止恶意请求,请使用能够在发送之前操作请求的Firefox-Plugin“Tamper-Data”之类的工具。使用此类工具,您可以删除或更改已发送的csrf-prevention令牌。 - 当你更改它或删除它时,服务器必须重新发送错误(未经授权或类似的东西) - 但如果服务器完全填写请求,那么你的CRSF保护不起作用。