2012-01-20 71 views
0

作爲我正在構建的webapp的一部分,有一個iframe允許當前登錄的用戶編輯一些內容,這些內容只會顯示在他們自己的登錄配置文件中,或者在沒有登錄用戶的公共頁面上。ASP.NET從XSS保護可編輯的IFrame

因爲這意味着只有輸入該內容的用戶或公共站點上的用戶才能看到該內容,這是否意味着XSS的風險是多餘的?如果他們只能將JavaScript注入到自己的頁面中,那麼他們只能訪問他們自己的Cookie是嗎?如果我們然後在沒有登錄用戶概念的公共頁面上顯示該內容(在不同的子域上),那麼沒有Cookie可訪問,請更正?

或者是我對XSS的危險性的錯誤看法?

安東尼

回答

1

偷授權cookie信息其實並沒有JavaScript注入可以給其他用戶只有壞處。重定向,表單提交,惱人的警報和不可數的其他不好的事情都可能發生。你不應該信任用戶提供的html內容,也不應該把它顯示給其他人。 爲了避免html注入,並同時允許用戶提供html,一般的想法是有一組預定義的html標籤,它不會給其他用戶帶來任何傷害,例如某些文本或分段,但不是未經檢查的圖像和JavaScript。你解析提供的html並刪除除了那些標籤以外的所有標籤。

您可以使用HtmlAgilityPack或任何其他庫,可以幫助您解析用戶提供的html。比你可以過濾掉和刪除任何不需要的來源,只留下安全的標記。

1

攻擊者通常會在攻擊網站時使用多個漏洞。允許用戶XSS他/她有幾個問題。

CSRF - 用戶可以訪問將惡意數據發佈到其個人資料並因此發生XSSed的惡意網站。

點擊劫持與內容 - 見http://blog.kotowicz.net/2011/07/cross-domain-content-extraction-with.html

接下來如果進入公共頁面上的內容,它可以將用戶重定向到包含漏洞利用程序自動接管用戶電腦不同的網站,或者他們可以重定向到色情。