2009-09-29 22 views
2

我正在構建一個應用程序(CMS更具體),它允許用戶添加Javascript到他們的內容的過程。真的沒有辦法讓Javascript,因爲它,一些安全問題現在變得非常明顯。我們主要關心的是cookie被盜用。允許使用Javascript - 防止XSS? (獨特的場景)

要多說明一下系統,CMS允許單個用戶訪問多個站點。用戶可以邀請其他用戶編輯他們的網站。有人訪問一個網站將執行任何已添加的JS。

這裏我們試圖繞過一個場景:

  1. 惡意用戶「邪惡鮑勃寫道:」 Javascript功能來讀取cookies並通過電子郵件發送給他。
  2. 邪惡鮑勃邀請我編輯他們的網站
  3. 我查看網站和我的餅乾發送給邪惡的鮑勃。
  4. Evil Bob現在可以訪問我的Cookie,並且可以編輯我有權訪問的任何網站。

我們添加了一些cookie防盜保護功能,這使得它更難以欺騙cookie。如果爲了使用被盜的cookie,你也必須欺騙所有頭部以匹配受害者的頭部。

我們對修復有一些想法,比如將每個網站放在一個單獨的子域中,並且需要單獨登錄每個賬戶。也許這是最好的解決方案。

其他建議?

回答

2

感謝您的答案!

我們最終將每個帳戶放在獨特的子域中,因此即使cookie被盜,它也只會影響單個網站,而不會影響您擁有的所有網站。這意味着惡意用戶只能訪問他們已有的內容。

+2

你也應該只使用cookie http cookie。這樣不能被盜。 – Alfred 2011-01-03 22:09:30

+0

http://stackoverflow.com/questions/16267847/user-editable-html-xss-protection-tumblr-like你能回答類似的問題,但與集中認證的一些細節? – 2013-04-28 21:27:16

1

如果您有這樣一個關鍵應用程序,您可能需要考慮添加服務器端會話表並將它們與客戶端Cookie進行比較,以避免您的cookie高度擡起並將邪惡的bob手伸出您的cookie jar!

+0

感謝您的建議!聽起來不錯。有沒有關於這個方法的其他細節?如果他們有cookie,他們是不是可以欺騙服務器端會話表中的匹配項,或者我錯過了什麼? – 2009-09-29 23:45:32

1

您可以嘗試通過類似Google's CajaCrockford's AdSafe的方式清理javascript。

不幸的是這些解決方案仍在進行中工作,雖然卡哈,例如,是目前相當可靠並正在積極發展(它只是沒有實現所有的DOM)。