我想配置 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