2012-04-27 27 views
1

我應該使用text/plain代替。或者說,當談到跨站點安全性時,text/json實際上會變得相同。內容類型text/json是否有安全隱患?

無論哪種方式,內容將是有效的JSON,我只是想確保我是正確的關於內容類型頭。

+1

正確的內容類型將是應用程序/ json – Musa 2012-04-27 19:02:17

+0

@Musa,機智:http://stackoverflow.com/questions/477816/the-right-json-content-type爲什麼不張貼作爲答案? – msanford 2012-04-27 19:15:47

回答

1

沒有安全考慮因素影響請求答案的MIME類型的選擇。請注意,JSON的適當MIME類型是application/json。

+0

我建議你閱讀這本書The Tangled Web。它詳細解釋了內容嗅探。 – Erlend 2012-04-28 05:10:38

+0

不要從肥皂盒中說出來。我讀了「糾結的網絡」。我仍堅持我的斷言,即HTTP內容頭的內容不構成安全考慮。無論您可以利用MIME類型的應用程序/ json進行攻擊,您都可以利用text/plain進行攻擊。 – 2012-04-29 16:05:27

+0

一般還是隻在這個特定的場景中? (我不明白你的第一句話是什麼意思,但對不起,如果我不知何故冒犯了你) – Erlend 2012-04-30 09:56:45

1

是的,存在安全隱患。瀏覽器 - 特別是IE瀏覽器 - 往往會猜測內容類型。原因在於,一段時間以來,服務器將所有內容都作爲相同的內容類型提供,以便瀏覽器不得不猜測正確顯示內容。 文本/純文本內容嗅探(第二次猜測)是臭名昭着的。如果你的json在某些值中包含了html,那麼你有可能直接在瀏覽器中打開url,瀏覽器會判斷它的HTML並將其呈現。這可能會導致XSS。

+2

這是一個常見的神話,而且隨着神話的流逝,這是虛假的。 mime類型檢測的Microsoft參考是:http://msdn.microsoft.com/en-us/library/ms775147%28v=vs.85%29.aspx請注意,從該文檔:a)text/plain永遠不會在限制區域內呈現爲HTML;和b)未知的MIME類型從未被猜出。這是八年前推出的IE6SP2的行爲。 text/json被處理爲json或作爲未知類型處理。這是XSS安全。 – 2012-04-29 16:24:33

+1

我看到這個討論不時在論壇上出現。從2011年的隨機例子:http://www.highdots.com/forums/html/ie-ignores-text-plain-again-299596.html – Erlend 2012-04-30 10:00:33

+0

我建立了一個測試平臺,這表明至少IE9會處理text/plain在某些情況下爲HTML:http://erlend.oftedal.no/blog/research/json/testbench.html – Erlend 2013-03-12 19:34:52

相關問題