如何知道我的 CSRF 是否正常工作?
How to know if my CSRF is working?
我正在尝试使用 Spring 和 freemarker 作为我的模板来实现 CSRF。
由于 freemarker 的限制,我不得不添加 javascript 函数来使其工作,就像我在这里看到的那样:
所以,我添加了这段代码:
$(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);
});
});
据我所知,它没有添加任何内容,只是一些没有内容的元标记...我不能 100% 确定 ajaxSend 是否正常工作,有什么方法可以知道它是否正常工作?
我读到默认情况下启用 CSRF。我有正确的链式过滤器(据我所知)。
我正在使用 spring 3.2.8 和安全 3.2.5 以及 freemarker 2.3.2
有什么方法可以验证吗?
谢谢
如果您想检查 csrf 过滤器是否阻止了恶意请求,请使用像 Firefox 插件 "Tamper-Data" 这样的工具,它能够在请求发送之前对其进行操作。使用此类工具,您可以删除或更改已发送的 csrf-prevention 令牌。 -- 当你更改或删除它时,服务器必须响应一个错误(未授权或类似的东西)-- 但是如果服务器像往常一样完全填充请求,那么你的 CRSF 保护就不起作用了。
我正在尝试使用 Spring 和 freemarker 作为我的模板来实现 CSRF。
由于 freemarker 的限制,我不得不添加 javascript 函数来使其工作,就像我在这里看到的那样:
所以,我添加了这段代码:
$(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);
});
});
据我所知,它没有添加任何内容,只是一些没有内容的元标记...我不能 100% 确定 ajaxSend 是否正常工作,有什么方法可以知道它是否正常工作?
我读到默认情况下启用 CSRF。我有正确的链式过滤器(据我所知)。
我正在使用 spring 3.2.8 和安全 3.2.5 以及 freemarker 2.3.2
有什么方法可以验证吗?
谢谢
如果您想检查 csrf 过滤器是否阻止了恶意请求,请使用像 Firefox 插件 "Tamper-Data" 这样的工具,它能够在请求发送之前对其进行操作。使用此类工具,您可以删除或更改已发送的 csrf-prevention 令牌。 -- 当你更改或删除它时,服务器必须响应一个错误(未授权或类似的东西)-- 但是如果服务器像往常一样完全填充请求,那么你的 CRSF 保护就不起作用了。