Apache 配置:仅允许特定目录使用 iFrames

Apache 配置:仅允许特定目录使用 iFrames

我想配置 Apache,以便

  • 它通常会拒绝 iFrames 请求(例如,通过设置Header always append X-Frame-Options DENY
  • ,它允许将特定目录嵌入为 iFrame,独立于请求的来源(例如<iframe src="www.mysite.com/mydir"></iframe>

那可能吗?

答案1

请参阅文档X-Frame-Options。 你可以

  • 允许嵌入 https://example.com/mydir

    Header always append X-Frame-Options ALLOW-FROM=https://example.com/mydir
    
  • 允许嵌入 https://example.com/mydir
    Location仅在不匹配时添加它/mydir,使用LocationMatch指示

    <VirtualHost *:80>
        ServerName example.com
    
        <LocationMatch "^/(?!mydir)(.*)">
            Header always append X-Frame-Options DENY
        </LocationMatch>
    </VirtualHost>
    
  • 为了最大限度地提高安全性,请添加这些的组合,即仅允许嵌入/mydir来自...

您不能将其限制为<iframe>单独,但嵌入也可以作为<frame>或来完成<object>

答案2

就我而言,只有当我喜欢时它才有效

    <LocationMatch "^/mydir(.*)">
       Header always append X-Frame-Options DENY
    </LocationMatch>

为了允许该/mydir文件夹...

编辑:忘记我说的话,这个设置不会阻止任何东西

答案3

对我来说我应该更新 modsecurity 文件:

文件:etc/apache2/mods-available/mod-security.conf

     SecRule REQUEST_URI|REMOTE_HOST "@contains /directorytotarget" "phase:2,nolog,setenv:sameoriginonly,t:none,t:urlDecode,t:normalizePath,t:lowercase,pass,msg:'setting X-Frame-Options'"
     Header set X-Frame-Options "SAMEORIGIN" env=sameoriginonly

相关内容