我已经将Owasp CsrfGuard添加到我的项目中,并发现一些资源(如css和gif-s)受到保护,尽管它们被下一个配置定义为不受保护:
org.owasp.csrfguard.unprotected.Public=%servletContext%/resources/*
org.owasp.csrfguard.unprotected.CSS=%servletContext%/resources/css/main.css
org.owasp.csrfguard.unprotected.JS=*.js
org.owasp.csrfguard.unprotected.Scripts=*.js
org.owasp.csrfguard.unprotected.Styles=*.css
org.owasp.csrfguard.unprotected.GIF=*.gif
org.owasp.csrfguard.unprotected.PNG=*.png
org.owasp.csrfguard.unprotected.JPG=*.jpg
对于js-s一切正常。那么这种行为的原因是什么?提前感谢。
答案 0 :(得分:0)
我不确定原因是什么。我只知道它与href属性(例如用于CSS和GIF文件)有关。当我对所有请求(url pattern =“/ *”)进行CSRFGuard过滤时,属性文件中未受保护的声明对我来说很好,但是当我想指定某个servlet时则不行。
但是,我找到了一个解决方法。在您的web.xml中,将其作为init param添加到OwaspJavaScriptServlet:
<init-param>
<param-name>inject-into-attributes</param-name>
<param-value>false</param-value>
</init-param>
然后,具有href和src属性的资源应该是无令牌的。请参阅documentation。