我的公司有合作伙伴通過動態生成的iframe將我們的一些網頁嵌入到他們的網站中。 iframe的源URL來自合作伙伴網站上的查詢字符串,因此我想確保不存在發生跨站點腳本攻擊的風險,因爲我們將不可信輸入用作iframe的源代碼。使用Javascript的CreateElement時防止XSS攻擊
源URL始終是一個相對URL(我們的主機名在Javascript中被硬編碼並被預先添加到相對URL中),我們對輸入URL進行了一些驗證以確保它以「index.php」開頭,因爲所有請求都會通過我們網站上的該頁面發送。例如,如果下面的網址是在客戶端站點訪問:
www.ourpartner.com/home.html?url=index.php%3Fid%3D999
的IFRAME的源URL將http://www.oursite.com/index.php?id=999。 iframe中使用的createElement Javascript中生成的,如下:
...
// We assign the url value from the query string to the variable urlparam
if(! urlparam.match(/^index\.php/i)) {
// Error. Quit.
}
var myiframe = document.createElement('iframe');
myiframe.src = 'http://www.oursite.com/' + urlparam;
document.getElementById('iframe_container').appendChild(myiframe);
是否有任何蔡斯攻擊者可以注入惡意網址爲iframe的來源是什麼?瀏覽器似乎會轉義任何可能出現在URL中的HTML實體,例如雙引號和左/右尖括號。我們是否應該採取進一步的預防措施與URL?
謝謝!
我以爲是這樣,但想確保。謝謝你的幫助。 – 2010-10-14 17:44:59