我有一个使用Spring-MVC,Spring-Security开发并托管在Tomcat 7上的Web应用程序。作为一项安全措施,我还将web.xml中的某些HTTP方法列入白名单,如下所示:
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method-omission>GET</http-method-omission>
<http-method-omission>POST</http-method-omission>
<http-method-omission>DELETE</http-method-omission>
</web-resource-collection>
<auth-constraint />
</security-constraint>
此时,我期望的是,如果我对任何端点进行了排除的http方法调用,那么我会收到403响应 - 这个设置有效。但403响应还包括一个“允许”标题如下:
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
答案 0 :(得分:0)
您可以更改默认值,而是使用白名单,这比黑名单方法更安全:
<headers defaults-disabled="true">
yourheaders...
</headers>
对于微调,documentation可能会有所帮助。
更新(完全排除路径):
<http auto-config="true" security="none">
<intercept-url pattern="/**" method="OPTIONS" />
</http>