[Checkmarx掃描漏洞處理] - Client Use Of JQuery Outdated Version
使用jQuery版本低於1.10時,執行以下javascript:
$('<img src="xx" onerror="consoloe.log(\'xss\');">').appendTo('body');
就會引發XSS攻擊,而不同版本在不同的瀏覽器會有不一樣的結果,詳細資料可參考這個網站,
從該網站可以看出,建議至少要用1.9x以上的版本比較安全。
這邊解法有兩種:
-
第1種很簡單,把jQuery檔名後面的版本號拿掉,再修改src內容即可:
<script type="text/javascript" src="../../../javascripts/jquery-1.2.6.js"></script> 改成 <script type="text/javascript" src="../../../javascripts/jquery.js"></script>
但是風險還是存在,只是掃描程式掃不出來,治標不治本。
-
第2種就是更新jQuery版本,問題就來了,jQuery已經到了3.x了,是否要用最新的版本比較好呢?
這就看網站要支援到什麼樣的瀏覽器決定,依照jQuery這裡與這裡
如果要支援IE8前及其他舊版瀏覽器,則要用1.9x以上的版本,
如不需要支援的話,就用2.x以上版本,兩個版本寫法是差不多的,只是支援IE的版本不同。
3.0則分兩種,要支援IE8前及其他舊版瀏覽器的話,使用Compat版。
個人建議最好還是更新jQuery版本比較好,只是如果原本用比較舊的(1.4前)版本,需要參考jQuery官網-Deprecated查詢哪些功能在哪個版本被棄用,
再改用新的功能取代,比較麻煩。
參考資料
https://domstorm.skepticfx.com/modules?id=529bbe6e125fac0000000003
https://www.virtuesecurity.com/blog/jquery-security-model/