如何在 apache httpd 中读取 Origin HTTP 标头并发送响应 404

如何在 apache httpd 中读取 Origin HTTP 标头并发送响应 404

我有一个渗透测试发现,如果客户端的“来源”标头不符合条件,则需要阻止来自客户端的请求,例如它必须是“192.168.2.123:8888”。

如果标头是“主机”,我已通过配置这些内容成功处理它<VirtualHost>

RewriteEngine On
RewriteCond %{HTTP_HOST} !^([a-zA-Z0-9-_]{1,20}.){0,3}192.168.2.123:8888$
RewriteRule ^(.*)$ http://192.168.2.123:8888/app/ui [R=404,L]

但对于“Origin”标头,我无法获取 HTTP_ORIGIN(我不确定该预定义变量是否存在)。我已经配置了这些,但没有工作:

<If "req('Origin') != '192.168.2.123:8888'">
    ErrorDocument 404 default
</If>

我如何找到读取“Origin”的配置并发送响应 404?谢谢。

答案1

我找到了解决方案:

RewriteCond %{HTTP:Origin} ^(?!\s*$).+
RewriteCond %{HTTP:Origin} !^([a-zA-Z0-9-_]{1,20}.){0,3}192.168.2.123:8888$
RewriteRule ^ - [F]

它将发送响应“403 Forbidden”

相关内容