作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 struts.xml 和所有表单中添加了一个拦截器,以防止 Cross-site Request Forgery攻击。我想知道我是否应该做点别的事情?例如检索 token 并与随表单一起提交的 token 进行匹配,以防它不会自动完成。
<interceptors>
<interceptor-stack name="defaultSecurityStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">*</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultSecurityStack"/>
所有表格都有
<s:form ...>
<s:token/>
...
</s:form>
最佳答案
首先,我认为你应该把token
拦截器作为堆栈上的第一个拦截器。这样,当 token 不匹配时,您的代码就不会执行。
其次,<param name="excludeMethods">*</param>
意味着您从未使用过此拦截器。
最后,token
拦截器会自动检查表单参数中的 token 与 session 中的 token 。如果不匹配,则返回结果 invalid.token
您可以通过它改变流程,如下所示
<result name="invalid.token" type="redirectAction">
<param name="actionName">wrongToken.jsp</param>
</result>
以下网址值得一读:
关于security - 如何在Struts2上实现CSR防伪代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22802225/
我是一名优秀的程序员,十分优秀!