我使用的是Web安全分析工具:Acunetix。当我扫描它时,它说HTTP"选项已启用"。我做了R&对此,我知道我们需要在Web服务器"中禁用" OPTIONS方法。我正在使用Payara Server(版本4.1.1.171.1),并没有任何方式如何禁用它。有人可以帮帮我吗?
答案 0 :(得分:1)
您可以在每个Web应用程序的部署描述符(web.xml)中启用和/或禁用HTTP方法。您使用section 13.8 of the Servlet Specification中正式指定的安全约束,因此下面描述的方法不是特定于Payara,而是适用于任何支持servlet的应用程序服务器。
最安全(即最安全)的方法不是专门禁用某些HTTP方法,如OPTIONS(如OP中所述),而是默认排除所有HTTP方法,并仅指定允许的HTTP方法。以下是Java EE 7 tutorial:
中的示例确保拒绝所有HTTP方法的最简单方法 您希望被允许使用http-method-omission元素 从安全约束中省略那些HTTP方法,以及 定义一个不命名角色的auth-constraint。安全约束 将适用于除了在。中命名的那些方法之外的所有方法 遗漏,约束只适用于匹配的资源 通过约束中的模式。
例如,以下约束排除了对所有方法的访问 除了模式匹配的资源的GET和POST /公司/ *:
<!-- SECURITY CONSTRAINT #5 -->
<security-constraint>
<display-name>Deny all HTTP methods except GET and POST</display-name>
<web-resource-collection>
<url-pattern>/company/*</url-pattern>
<http-method-omission>GET</http-method-omission>
<http-method-omission>POST</http-method-omission>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
您正在使用支持EE 7的Payara 4.1,请查看Java EE7教程中标题为Securing HTTP Resources的部分,了解有关如何执行此操作的完整详细信息。
Servlet Specification Version 3.1的第13.8.2节也有一个非常详细的例子。