[Checkmarx掃描漏洞處理] - Client Use Of JQuery Outdated Version

[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/

jQuery官網