回答
恩,我不認爲你可以。
iframe是客戶端容器,這意味着最終用戶瀏覽器負責在iframe中加載內容。您無法分辨您的頁面是否加載到iframe中。
我不認爲你可以通過.htaccess,但你可以使用JS。您可以使用像這樣的功能來檢查:
function parentIsSameOrigin()
{
var result = true;
if (window.parent)
{
result = Boolean
(
// more precise modifications needed here
window.this.location.href.indexOf(window.parent.location.href) == 0
);
}
return result;
}
嗯......但是如果JavaScript在客戶端的瀏覽器上被禁用呢? – 2012-12-17 13:34:03
沒有其他辦法,如果這是一個合理的問題,我會加載使用JS的Iframe的內容,除非函數驗證,否則不顯示任何內容。 – udjamaflip 2012-12-17 22:31:12
你可以隨時把display:none放入css中,並用javascript將其刪除。如果用戶禁用JavaScript(這對於現代標準是不可接受的),它會強制不顯示內容。 – dtakis 2015-04-14 23:58:43
您可以在標題X-Frame-Options:Deny中設置變量。
所有現代瀏覽器都支持X-Frame-Options標頭。
Facebook使用此標頭禁用iframe/framesets(也是Javascript)。
如果啓用了Apache mod_headers中的:
的.htaccess
Header set X-Frame-Options DENY
但是,您可以啓用I幀來自同一來源。
Header always append X-Frame-Options SAMEORIGIN
或者在Nginx的:
add_header X-Frame-Options Deny; #or SAMEORIGIN
瀏覽器兼容性:Source
- 的Internet Explorer:8.0
- 火狐(壁虎):3.6.9(1.9.2.9)
- Opera:10.50
- Safari瀏覽器:4.0
- 鉻:4.1.249.1042
可以用.htaccess爲以下
RewriteEngine On
RewriteCond %{QUERY_STRING} !^id=[^&]+ [NC]
# if referrer is bad.com
RewriteCond %{HTTP_REFERER} (www\.)?bad\.com [NC]
# then redirect to a different page
RewriteRule !^404.shtm [L,NC,R=302]
您將需要依靠HTTP_REFERER這個這個代碼將任何請求重定向從壞.COM的頁面未找到
這個解決方案促成了這一答案
由於存在解決方法,您不能「執行」它,但可以使用標準標頭方法。 html5-boilerplate有一個很好的虛擬主機/ htaccess片段,首先設置X-Frame-Options
作爲您的DENY/SAMEORIGIN/ALLOW-FROM
的選擇,然後允許白名單MIME類型用於良好的框架,如Google圖片搜索。
檢查鏈接,最新的,但這裏是從2016年1月25日的例子SAMEORIGIN
模式:
<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
Header unset X-Frame-Options
</FilesMatch>
</IfModule>
- 1. 如何阻止iframe閃爍?
- 2. 如何阻止iframe cookies?
- 3. 使用IFrame的阻止URL
- 4. 如何阻止我的YouTube iFrame
- 5. 如何阻止Gmail最大化iFrame?
- 6. 如何阻止Ajax調用(我希望它阻止)
- 7. Angular:如何阻止我的$ http調用阻止UI?
- 8. Iframe在HTML中被阻止
- 9. 阻止網頁移除iframe
- 10. 阻止jQuery追加到iframe
- 11. 如何阻止EntityQuery調用元數據
- 12. Selenium:如何阻止RemoteRunner.html被調用
- 13. 如何阻止讀取系統調用
- 14. 如何阻止Pyzo調用mainloop?
- 15. 停止Iframe阻止父文檔滾動?
- 16. 如何阻止
- 17. webhost(azure)阻止ajax調用
- 18. WPF阻止鍵盤調用
- 19. WCF與wsDualHttpBinding阻止調用
- 20. Linux阻止系統調用
- 21. 阻止REST API調用
- 22. 如何阻止NpgsqlDataReader阻塞?
- 23. 我如何阻止阻擋?
- 24. 如何調用IFRAME
- 25. 如何在Android中阻止(true)阻止
- 26. 如何阻止fancybox調整大小?
- 27. 如何阻止CFSocket發送回調?
- 28. 如何防止當一個網站阻止其在iframe標籤內的使用
- 29. 何時阻止函數調用?
- 30. 如何禁用/阻止USB
這是不正確的。您可以通過JavaScript檢查網頁是否爲「頂部」。 'window.top ===窗口'。 – 2012-10-13 05:25:00