有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。
这时我们需要禁用一些方法,比如DELETE,PUT防止攻击者对服务器进行攻击
对于部署在tomcat上的应用来说,需要在tomcat的web.xml的配置文件中添加相应的配置,来达到禁用方法的目的:
步骤1:在web.xml文件中添加如下配置
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method></auth-method>
</login-config>
说明:
简单解释一下上面各参数:
<security-constraint> 的子元素 <http-method> 是可选的,(<http-method>
元素里面的的协议即是要被禁止的协议类型);如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源。
子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用。如果没有 <auth-constraint> 子元素,这表明任何身份的用户都可以访问相应的资源。也就是说,如果 <security-constraint> 中没有 <auth-constraint> 子元素的话,配置实际上是不起中用的。如果加入了 <auth-constraint> 子元素,但是其内容为空,这表示所有身份的用户都被禁止访问相应的资源。
<login-config>为可选项:
对于<login-config>:
当访问服务器中受保护的资源时,容器管理的验证方法可以控制确认用户身份的方式。Tomcat支持四种容器管理的安全防护,它们是:
BASIC(基本验证):通过HTTP验证,需要提供base64编码文本的用户口令
DIGEST(摘要验证):通过HTTP验证,需要提供摘要编码字符串的用户口令
FORM(表单验证):在网页的表单上要求提供密码
CLIENT-CERT(客户端证书验证):以客户端证书来确认用户的身份
参考自:https://blog.csdn.net/A_Runner/article/details/80618023