我應該使用text/plain代替。或者說,當談到跨站點安全性時,text/json實際上會變得相同。內容類型text/json是否有安全隱患?
無論哪種方式,內容將是有效的JSON,我只是想確保我是正確的關於內容類型頭。
我應該使用text/plain代替。或者說,當談到跨站點安全性時,text/json實際上會變得相同。內容類型text/json是否有安全隱患?
無論哪種方式,內容將是有效的JSON,我只是想確保我是正確的關於內容類型頭。
沒有安全考慮因素影響請求答案的MIME類型的選擇。請注意,JSON的適當MIME類型是application/json。
是的,存在安全隱患。瀏覽器 - 特別是IE瀏覽器 - 往往會猜測內容類型。原因在於,一段時間以來,服務器將所有內容都作爲相同的內容類型提供,以便瀏覽器不得不猜測正確顯示內容。 文本/純文本內容嗅探(第二次猜測)是臭名昭着的。如果你的json在某些值中包含了html,那麼你有可能直接在瀏覽器中打開url,瀏覽器會判斷它的HTML並將其呈現。這可能會導致XSS。
這是一個常見的神話,而且隨着神話的流逝,這是虛假的。 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
我看到這個討論不時在論壇上出現。從2011年的隨機例子:http://www.highdots.com/forums/html/ie-ignores-text-plain-again-299596.html – Erlend 2012-04-30 10:00:33
我建立了一個測試平臺,這表明至少IE9會處理text/plain在某些情況下爲HTML:http://erlend.oftedal.no/blog/research/json/testbench.html – Erlend 2013-03-12 19:34:52
正確的內容類型將是應用程序/ json – Musa 2012-04-27 19:02:17
@Musa,機智:http://stackoverflow.com/questions/477816/the-right-json-content-type爲什麼不張貼作爲答案? – msanford 2012-04-27 19:15:47