如何禁用Payara Server中的HTTP OPTIONS方法?

时间:2018-03-23 10:59:48

标签: java http webserver application-server payara

我使用的是Web安全分析工具:Acunetix。当我扫描它时,它说HTTP"选项已启用"。我做了R&对此,我知道我们需要在Web服务器"中禁用" OPTIONS方法。我正在使用Payara Server(版本4.1.1.171.1),并没有任何方式如何禁用它。有人可以帮帮我吗?

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节也有一个非常详细的例子。