2011-03-07 80 views
13

我使用服務在客戶端的內容已準備好並顯示在iframe中。客戶端然後複製一個基本的iframe html標籤並將其粘貼到他們的網頁中。有些客戶抱怨其他網站正在複製iframe標籤並將其粘貼到他們的網站中。如何限制iframe從外部網站到特定域的顯示

是否可以限制iframe的內容顯示到特定的域或域?也許通過編程告訴iframe其父代必須是some-domain.com或者不顯示。

這是否有意義?我有時可能太冗長。

回答

11

您可以使用.htaccess(假設原始內容位於Apache服務器上)來限制對特定IP的訪問。

或者,如果頁面是一個PHP,你可以把它限制在一個特定的領域,如:

<?php 
$continue = 0; 
if(isset($_SERVER['HTTP_REFERER'])) { 

    //correct domain: 
    $ar=parse_url($_SERVER['HTTP_REFERER']); 
    if(strpos($ar['host'], 'yourdomain.com') === false){ 
    } else { 
     $continue = 1; 
    } 

} 

if($continue == 0){ 
    header('HTTP/1.0 403 Forbidden'); 
    exit('Forbidden'); 
} 

?> 
+0

你在這裏做一個_huge_的假設,即可以像這樣修改web服務器。 – Oded 2011-03-07 19:42:46

+0

@Oded作出了什麼假設?該引用者是正確的?請解釋。 – Marci 2011-03-07 19:57:28

+0

@Marci - 他假設你可以訪問並更改'.htaccess'文件(並且你使用的是Apache)。 – Oded 2011-03-07 19:58:52

1

聽起來就像是更好地做服務器端檢查 - 你可以檢查對iFrame的標記一個有效域名(或父域名)的列表,如果它們無效則拒絕它。

在將iFrame注入頁面之前,您可以在javascript中完成上述所有操作,但是如果javascript關閉,您的驗證將不起作用,更不用說客戶端上的開發工具可以修改任何javascript。

+0

這需要在內容網站上完成,無論是通過服務器端腳本,服務器配置還是一個JavaScript,但正如你所說,如果它關閉,那麼該選項將不起作用。 – jackJoe 2011-03-07 19:47:38