我在网站上启用了Cloudflare免费SSL,我需要更改HTTPOPTIONS方法以仅允许GET和POST。
我在SSH中使用了这个命令来检查可用的方法:
Curl-X选项https://example.com
相关结果是:
...
* issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0xxxx)
> OPTIONS / HTTP/2
> Host: example.com
> user-agent: curl/7.68.0
> accept: */*
...
从“接受:/”我明白所有的方法都是允许的,我想改变这一点。
我尝试编辑服务器上的. htaccess文件并添加
RewriteEngine on
RewriteCond %{THE_REQUEST} !^(POST|GET)\ /.*\ HTTP/1\.1$
RewriteRule .* - [F]
它似乎不起作用,我想这可能是我可以在Cloudflare中修复的东西,但不知道我应该如何做到这一点。有人知道这是否可以做到,并且可以为我指明正确的方向吗?
谢谢你们
我想你可能会混淆一些概念和你表达问题的方式。除了GET/PUT之外,还有很多方法可以阻止任何HTTP方法(使用Cloudflare,或者直接在您的服务器上使用htaccess)。
但是,因为您提出了OPTIONS方法,所以听起来您想广播哪些方法可用?在这种情况下,您需要阅读“Access-Control-Allow-方法”标头-
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
本质上,这是在发出OPTIONS请求后告诉浏览器(或客户端)给定endpoint可用的方法。
要使用它,您可以使用htaccess或Cloudflare添加标头。