我想限制某些域访问我的应用服务器上的服务。例如:mydomain.com/sensitiveInformationServlet
我想在我的 Apache 服务器上创建一个过滤器,它将匹配这个 servlet 的所有请求并检查域,如果受信任则允许访问。
最好的方法是什么?最初我以为我可以创建一个虚拟主机,然后应用 mod_authz_host 模块,但是虚拟主机只能映射到域和端口,并忽略端口之后的所有内容。
有什么建议吗?这是我目前所取得的进展
<VirtualHost mydomain>
<Location />
Order Deny,Allow
Deny from all
Allow from mydomain.com some.trusteddomain.com
</Location>
</VirtualHost>
这将阻止访问整个站点,而不仅仅是sensitiveInformationServlet servlet
答案1
因此请具体说明。
<VirtualHost *:80>
DocumentRoot /your/fancy/web/site
<Location /SensitiveInformationURL>
Order Deny,Allow
Deny from all
Allow from specific.IP.range.to.prevent.expensive.lookups.
</Location>
</VirtualHost>
按域匹配客户端的成本很高,因为它需要 PTR 查找每一个请求。
我还更正了您的错误 VirtualHost。