2011-06-24 34 views

回答

3

Internet ExplorerFirefox和其他瀏覽器,你可以通過在url() CSS語句中指定一個javascript: URL在CSS中嵌入的JavaScript。

即使您設法將其過濾掉,攻擊者仍可以使用高級CSS完全重新設計頁面(包括其所有文本內容)。因此,誘騙用戶執行愚蠢行爲變得非常容易,這就是XSS的意圖。例如,您可以使按鈕填充整個窗口並將其文本更改爲「點擊此處贏取1000美元」。

你可以白名單有選擇的幾個特性(text-*font-*colorbackground(僅限於顏色和漸變,沒有網址或其他花哨的東西)),但你必須拒絕任何不符合這些限制。

+1

可能IE做過最壞的打算。 –

+7

@Amir Raminfar:我認爲這將是一個較短的清單,列出哪些IE做對了。我會開始:允許我下載一個真正的瀏覽器。 – Robert

+0

是否有少量的CSS關鍵字可以加入黑名單,以防止執行和使用新內容填充元素? – Tom

0

有趣的問題。我可以想象樣式表能夠刪除或隱藏可能成爲安全問題的元素。您也可以在使用after:之前的某個元素之後插入文本,以便您可能需要小心。

或者我認爲你應該首先包括他們的樣式表,以便它們不會突然改變你的所有字體或全局的東西。

+0

首先包含樣式表沒有任何作用,您可以簡單地定義具有更高優先級的規則。 – phihag

+0

這就是我所說的一件好事。如果其他css是#foo div,那麼清楚他們是針對那些div。我們使用這種方法,以便我們的默認CSS不會突然改變。 –

+0

我的意思是:**攻擊者**可以用更高的優先級來定義規則,只需堅持'!重要的'在每個價值之前。 – phihag

0

這些都是舊的黑客,但可能仍然在舊版瀏覽器中工作,例如,您可以將javascript協議放在href attr中。

http://ha.ckers.org/xss.html (搜索方式)