jQuery 1.7.2是一個相對較舊的版本,它在最新的閉包代碼執行漏洞(CVE-2015-9251)中存在漏洞。這個漏洞允許攻擊者在用戶瀏覽器中執行任意的JavaScript代碼。
// 由于沒有正確地保護遞歸代碼,導致代碼執行漏洞 var obj = {foo: 'foo', bar: 'bar'}; $.map(obj, function(val) { $.map(obj, arguments.callee); });
上面的代碼示例中,使用了$ .map函數迭代一個對象,而該對象是遞歸調用的,攻擊者可以將其構造為一個可執行的腳本,利用該漏洞執行腳本,獲取敏感信息或控制用戶的瀏覽器。
這個漏洞已經被修復,建議開發者和用戶都使用最新版本的jQuery以避免漏洞的利用。