You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache 2.4 配置仅允许同服务器其他域名访问指定内嵌页面

问题原因

你之前尝试的基于IP/host的访问控制不生效,是因为无论用户直接访问站点,还是xxx.subdomain.com的页面在用户端加载内嵌iframe,请求的源IP都是用户的客户端IP,规则无法区分两种请求场景。

解决方案

采用CSP安全头+Referer校验的双重防护方案,无需修改业务代码即可实现需求,修改后的虚拟主机配置如下:

<VirtualHost 127.0.0.1:443 _default_:443>
  ServerAlias yyy.subdomain.com 
  SSLEngine on
  SSLCertificateFile "/opt/user/apache/conf/certs/server.crt"
  SSLCertificateKeyFile "/opt/user/apache/conf/certs/server.key"
  DocumentRoot /opt/bitnami/apache/htdocs/yyy
  # 配置CSP规则,仅允许同根域名下的站点内嵌当前页面,可修改为精确地址https://xxx.subdomain.com限制更严格
  Header always set Content-Security-Policy "frame-ancestors 'self' https://*.subdomain.com;"

  <Directory "/opt/bitnami/apache/htdocs/yyy">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    RewriteEngine On
    # 校验请求来源,仅允许来自subdomain.com域名下的请求访问,空Referer(用户直接输入地址)直接拦截
    RewriteCond %{HTTP_REFERER} !^https://.*\.subdomain\.com(/.*)?$ [NC]
    RewriteRule ^ - [F,L]
  </Directory>
</VirtualHost>
生效说明
  1. 若你的站点使用HTTP协议,将配置中的https替换为http即可
  2. 配置修改完成后,重启Apache服务生效,Bitnami环境默认重启命令为:
    sudo /opt/bitnami/ctlscript.sh restart apache
可选增强方案

如果需要更高安全性,可在业务层增加签名校验:xxx.subdomain.com生成页面时,给iframe的url追加一次性签名参数,yyy.subdomain.com校验签名合法后才返回内容,可完全避免Referer被伪造、被禁用的极端场景。


内容的提问来源于stack exchange,提问作者cdiegobb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:48:01