2010-02-23 38 views
2

我們使用jQuery和我在國家漏洞數據庫遇到以下jQuery的漏洞:jQuery的漏洞(NVD CVE-2007至2379年)

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2379

這已經被固定在更近jQuery的版本?該漏洞的原始發行日期爲2007年4月30日。

我在努力確保我們使用的小jQuery不會公開這個漏洞,有沒有人有它的例子?

+0

從1.4版本開始,jQuery使用JSON解析器構建到瀏覽器中(如果可用)。 – 2010-02-23 22:35:12

回答

6

看一看jQuery.getJSON()

如果指定的URL是一個遠程服務器上,該請求被視爲JSONP來代替。

Read about JSONP here

只要您使用JSONP,此漏洞不存在。

此外,這個'漏洞'是愚蠢的。任何人都可以使用JSON交換數據,這不僅僅是使用它的jQuery。

+6

+1「漏洞」非常愚蠢。 – SLaks 2010-02-23 23:00:18

+1

使用JSONP會加重數據的機密性。如果JSONP服務不檢查源/引用者標頭或CSRF令牌,則非法站點可以定義自己的回調,以便在受害者衝過站點時接收數據。 (JSONP圍繞同源策略工作,CORS + XHR以直線方式工作)。至於CVE,是的,現代瀏覽器停止調用setter並重新定義構造函數作爲腳本執行數組。然而,Gareth Heyes在攻擊者控制部分數據時演示了字符編碼漏洞。 http://blog.portswigger.net/2016/11/json-hijacking-for-modern-web.html – 2017-06-29 00:25:45

0

是不是問題只有那裏,當你使用JSONP?只要所有的來源都是可信的,這一切都是安全的。

作爲JS固有的東西,沒有辦法解決它。可能的是,可以使用許多現代瀏覽器支持的XMLHttpRequest/CORS跨源資源共享規範(但要求提供服務器配置爲發出CORS頭),而不是使用JSONP並使用Douglas Crockford的JSON2庫(如果可用的話,它也會回退到原生瀏覽器JSON支持)。