春天的CSRF + Thymeleaf + Ajax + Restful API

时间:2014-11-05 02:16:23

标签: ajax spring rest spring-mvc thymeleaf

我在Spring + Thymeleaf应用程序中启用了CSRF。好消息是Thymeleaf自动负责将CSRF添加到每个<形式>在HTML中。问题是提交这些表单的Ajax调用现在失败了,我想知道是否有一个标准的解决方案。

另一方面,另一个问题是我的应用程序将支持Restful API。当我在我的应用程序中启用CSRF时,来自使用API​​的客户端的身份验证失败。 所以问题是有没有办法让CSRF用于网页浏览并为我的Restful API禁用它? 另一方面,如果攻击者知道它们,则禁用CSRF会使restful API容易受到攻击。那么这里的最佳做法是什么?

由于

1 个答案:

答案 0 :(得分:0)

对于使用ajax调用提交表单的First Scenario,您需要手动添加csrf在表单中生成的隐藏输入。 对于第二种情况,你可以在你的情况下从拦截器中排除一些url,你可以从CSRF拦截器中排除url。

排除标记出现在Spring 3.2中

    <mvc:interceptor>
<mvc:exclude-mapping path="/your_url"/> 
</mvc:interceptors>