jquery版本安全漏洞問題


 

起因:
公司一次常規安全掃描提出了jquery版本漏洞問題:
1.x系列版本等於或低於1.12的jQuery,和2.x系列版本等於或低於2.2的jQuery,過濾用戶輸入數據所使用的正則表達式存在缺陷,可能導致LOCATION.HASH跨站漏洞。(漏洞官方修復介紹:http://bugs.jquery.com/ticket/9521)

 

正確解決方法:升級版本。
但是,最新版本的jquery廢除了很多api,jQuery團隊推出了的一個插件jQuery Migrate,自動恢復那些在最新版本之后被廢棄的API,從而讓已有的js代碼無須改動就能和最新的jQuery庫一起正常運行。在引用的jquery文件后引用Migrate文件即可。

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

 

然而由於這個項目歷史久遠,代碼功能繁雜,接手時排查發現引用了多個版本的jquery。倉促的、大規模的改動之后還是出現了很多問題,只能再回退版本,采取臨時解決方案。
臨時解決方案:隱藏jQuery版本信息,避免被攻擊者識別出版本號。

 

操作如下:
>jquery文件重命名;
>jquery文件里頭部帶有版本號的注釋刪除;
>jquery文件內版本號清除;
>在 jquery.js 文件中重寫$.fn.jquery 屬性值;

 

 

然后項目就走常規上線流程了。
but,林子大了什么都有,版本插件多了什么幺蛾子都能沖突,還是有少部分功能頁面內調用的jquery插件在沒有任何報錯的情況下失效了。
經過一系列排查,發現jquery文件內,保留版本號的情況下,那些奇怪的問題就消失了。
所以,最終jquery文件內重寫jquery版本而不是清除版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM