在 Apache 服务器上禁用 OPTIONS HTTP

问题描述 投票:0回答:4
Request:
OPTIONS / HTTP/1.1
Host: webcat.staci.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*

Response:
HTTP/1.1 200 OK
Date: Thu, 01 Oct 2015 12:24:59 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Allow: GET,HEAD,POST,OPTIONS,TRACE
Vary: Accept-Encoding,User-Agent
Content-Length: 0
Keep-Alive: timeout=7, max=95
Connection: Keep-Alive
Content-Type: httpd/unix-directory
Set-Cookie: BIGipServerwebcat-ssl=192938503.47873.0000; path=/; httponly; secure

我想在我的 Apache 服务器上禁用 HTTP 选项,但我想保留

GET
POST
并且我想
PING
我的服务器。

我怎样才能做到这一点?

我的httpd.conf:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^ (GET,POST,HEAD)
RewriteRule .* – [R=405,L]
java apache jboss
4个回答
12
投票

无法使用 RewriteCond 禁用 OPTIONS 方法。 您必须使用 LimitExcept 指令来禁用。

下面是可以添加到 Apache 配置之外的代码片段:

<Location />
    <LimitExcept GET POST>
        order deny,allow
        deny from all
    </LimitExcept>
</Location>

请不要忘记重新启动网络服务器:)


0
投票

如果您想将其应用到特定项目:

只需将这些行添加到

.htaccess
文件中即可对我有用:

RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]

为此,请确保您已启用

mod_rewrite
并在这些行之前使用
RewriteEngine On


0
投票

要禁用 Apache server 上的

HTTP OPTIONS
方法,同时仍允许 GETPOSTPING 请求,您可以在 httpd.conf 文件中使用以下配置

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^OPTIONS$
RewriteRule .* - [R=405,L]

<LocationMatch "/your_ping_endpoint">
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</LocationMatch>

/your_ping_endpoint
替换为您要用于 PING 请求的实际 URL 端点。此配置将为任何 OPTIONS 请求返回 405方法不允许)响应,并拒绝从除
localhost
(127.0.0.1) 之外的任何位置访问 your_ping_endpoint URL

此外,请确保通过运行以下命令启用 Apache 中的重写模块:

sudo a2enmod rewrite

进行这些更改后,重新启动 Apache 服务器以使配置生效。


0
投票

我不喜欢所有这些

RewriteCond
解决方案,因为它为每个请求添加了额外的正则表达式计算。

<Limit
<LimitExcept
有问题,它返回403和默认欢迎页面。

我发现的简单解决方案之一是:

<Location />
    AllowMethods GET POST PUT DELETE
</Location>

将其放在

<VirtualHost/>
指令之外即可。 只有一个大问题,自 Apache 2.3 起,此功能被标记为“实验性” 请参阅文档:

https://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html

© www.soinside.com 2019 - 2024. All rights reserved.