你的問題問:
「編輯:主要的原因,爲什麼我會做到這一點是讓他們使用自己的javascript,並擁有自己的css和div的,什麼不能爲輸出」。
如果你允許用戶提供任意的JavaScript,那麼消毒輸入是不值得的。跨站腳本技術(XSS)的定義基本上是「用戶可以提供JavaScript並且某些用戶不好」。現在
,有些網站允許用戶提供JavaScript和他們減輕兩種方式之一的風險:
- 主機在不同的網域個人用戶的CMS的。 Blogger和Tumblr(例如myblog。blogspot .com vs. blogger.com),可以防止用戶的模板竊取其他用戶的Cookie。你必須知道你在做什麼,並且不要在根域下託管任何用戶內容。
- 如果用戶內容永遠不會在用戶之間共享,那麼惡意用戶提供的腳本無關緊要。然而,CMS是關於共享,所以這可能不適用於此
有一些黑名單過濾器可以工作,但他們只工作今天。 HTML規範和瀏覽器會定期更改,這使得過濾器幾乎無法維護。列入黑名單是解決安全性和功能性問題的一條可靠途徑。
處理用戶數據時,請始終將其視爲不可信。如果您在產品的早期階段未解決問題並且您的方案發生變化,那麼幾乎不可能返回並找到所有XSS要點或修改產品以防止XSS發生而不會影響用戶。
如果他允許第三方Javascript,任何事情都可以真正安全嗎? – 2008-10-06 21:19:50