2013-01-18 41 views
0

上是否有任何方式通過指定一些HTTP頭禁止瀏覽器執行內嵌腳本(代碼置於頁面上直接,而不是在外部資源,即事件處理程序,腳本塊等),用於某些頁,服務器或類似的政策?我正在尋找一些通用解決方案:跨瀏覽器和HTTP服務器不可知論者。禁止內嵌腳本

+1

你這是什麼意思是*內聯腳本(即事件處理程序,腳本塊等)*? – Joseph

+0

@Joseph夢這樣的構建體爲:''或'' – Marek

回答

0

很多谷歌搜索,並與大專院校一些討論後,我終於找到了解決辦法 - Content Security Policy(描述這個概念好文章 - "An introduction to Content Security Policy"被Mike西寫的)。現在它是Candidate Recomendation階段W3C但最流行的瀏覽器已經支持它(在IE版本< 10遺憾的是支持)。

這不正是我一直在尋找:

  • 這是一個響應HTTP標頭所以它斷絕不可知
  • 它(或多或少...)跨瀏覽器
  • 它可以禁止從執行內嵌腳本(與指令unsafe-inline)或瀏覽器的eval(unsafe-eval; EVAL是邪惡的),並介紹了許多有用的限制(從視圖瀏覽器安全點)
0

基本上,這就是所謂的XSS過濾和簡單的答案會是防止它的輸入或如任何經歷,不使它們在所有。有很多方法可以做到這一點,圖書館也可以根據平臺幫助你。

在入口點,你應該過濾它們。應始終過濾客戶提交的內容。這被稱爲XSS過濾。

在渲染方面,你應該這樣做html_entities如果你想逃避特殊字符,尤其是從用戶輸入到頁面中。

所有這些都是在服務器上完成。

+0

我知道的,可以在應用層被施加XSS過濾策略。我正在尋找的東西更像是[HttpOnly標誌](https://www.owasp.org/index.php/HttpOnly) – Marek