我在Spring + Thymeleaf应用程序中启用了CSRF。好消息是Thymeleaf自动负责将CSRF添加到每个<形式>在HTML中。问题是提交这些表单的Ajax调用现在失败了,我想知道是否有一个标准的解决方案。
另一方面,另一个问题是我的应用程序将支持Restful API。当我在我的应用程序中启用CSRF时,来自使用API的客户端的身份验证失败。 所以问题是有没有办法让CSRF用于网页浏览并为我的Restful API禁用它? 另一方面,如果攻击者知道它们,则禁用CSRF会使restful API容易受到攻击。那么这里的最佳做法是什么?
由于
答案 0 :(得分:0)
对于使用ajax调用提交表单的First Scenario,您需要手动添加csrf在表单中生成的隐藏输入。 对于第二种情况,你可以在你的情况下从拦截器中排除一些url,你可以从CSRF拦截器中排除url。
排除标记出现在Spring 3.2中
<mvc:interceptor>
<mvc:exclude-mapping path="/your_url"/>
</mvc:interceptors>