2014-01-24 65 views
1

爲什麼瀏覽器允許跨源JSONP請求並且不允許JSON請求?我知道JSON請求不允許阻止XSS,但我看不出JSONP比JSON更安全。JSONP在跨域請求中如何比JSON更安全?

事實上,JSONP可能會更危險,因爲它在技術上是一個腳本,其中JSON只是一個文本字符串?

回答

3

JSONP並不安全。這是一個解決方法/漏洞/黑客通過相同的原產地政策。

CORS是JSONP更安全的替代方案。

+0

爲什麼瀏覽器阻止JSON請求,開發人員總是可以只使用JSONP(不安全)?允許一個而不是另一個的要點是什麼? – user2939415

+0

開發人員**不能**總是使用JSONP。服務器必須支持它。 –

+0

因此,瀏覽器允許JSONP(而不是JSON),因爲**少** web API支持JSONP?這是原因嗎? – user2939415

0

由於跨域JSON被阻止,敏感數據可以使用JSON而不是JSONP傳輸。這可以防止XSS。另外,服務器不應該使用JSONP發送敏感數據。因此,使用JSON發送數據可以防止未經授權的觀察。 JSON在這個意義上更安全。