2014-09-02 65 views
0

我需要加載給定URL的用戶,並在用戶給出網站內容後顯示帶有我的內容的div。顯示來自其他網站的內容和安全

實現,這將是微不足道的:

$c = file_get_contents($url); 
echo $c . $myDivCode; 

然而,就不會這樣開我的服務器到各種安全問題,如跨站腳本?

如果是這樣,考慮到處理這個問題的最好方法是什麼,我希望能夠儘可能地顯示給定URL的用戶內容(即運行所有安全腳本)。

回答

1

最好的辦法可能會是在那樣一個iframe來顯示網站:

echo "<iframe src=\"$url\"></iframe>"; 

這樣用戶直接從URL加載頁面,沒有你的服務器代理它。 但是,由於您顯示的是其他網站的信息,因此除非您完全刪除腳本和HTML,否則您的網站將始終容易受到XSS的攻擊。

0

當然你可以打開xss漏洞利用。

爲防止XSS攻擊,您只需檢查並驗證/正確地轉義所有數據,不允許從該URL插入html或javascript代碼。

使用htmlspecialchars()將HTML字符轉換爲HTML實體。因此,標記開始/結束標記的字符會變成html實體,您可以使用strip_tags()僅允許某些標記,因爲函數不會去除onclick或onload等有害屬性。

相關問題