近日,微信團隊發(fā)布公告,為了進一步提升微信小程序的安全性和用戶體驗,目前平臺對提審的小程序均需進行安全檢測。平臺將自2022年7月6日開始在代碼審核環(huán)節(jié)對采用內置JavaScript解釋器的小程序進行駁回,以下是相關詳情。
微信團隊表示,在檢測過程中,發(fā)現(xiàn)有小程序采用內置JavaScript解釋器(如eval5、estime、evil-eval等)的方式,動態(tài)執(zhí)行JS代碼以及對小程序wxml代碼進行熱更新。對于使用解釋器的小程序,平臺將自2022年7月6日開始在代碼審核環(huán)節(jié)進行駁回,請各位開發(fā)者于2022年7月6日前完成自查、修復。
平臺列舉了幾種常見違規(guī)案例,供大家參考:
1、動態(tài)下發(fā)代碼執(zhí)行
某小程序引入JS解釋器模塊,在預埋場景下觸發(fā)動態(tài)執(zhí)行代碼的邏輯,從而從服務端后臺拉取要動態(tài)執(zhí)行的代碼或字段,在JS解釋器中動態(tài)執(zhí)行代碼;

2、小程序頁面文件熱更新
下面這個例子為某小程序引入JS解釋器模塊執(zhí)行小程序熱更新;

3、其他情況
部分數(shù)值計算類小程序會引入解釋器來執(zhí)行數(shù)學表達式運算功能,對于數(shù)值計算,請使用其他方式,不得使用解釋器提供的動態(tài)eval代碼執(zhí)行能力實現(xiàn);

4、修復指引
若小程序在代碼提審階段因存在解釋器被要求整改,請根據(jù)代碼提審反饋,自查相應的文件,在刪除相應的解釋器文件后重新提交代碼審核;
其他常見問題
Q1:小程序中解釋器文件是第三方包依賴引入的,這種如何處理?
A1:平臺不允許開發(fā)者使用JS解釋器來動態(tài)執(zhí)行代碼,若小程序代碼中存在JS解釋器邏輯,請根據(jù)小程序審核駁回細節(jié)自行移除或聯(lián)系依賴提供者、服務商移除后再次提交審核;
Q2:經過自查后提交代碼仍提示存在解釋器,這種如何處理?
A2:請確保提交的小程序代碼中不存在解釋器文件以及JavaScript代碼解析模塊非正常使用,若仍存在問題,請?zhí)峤豢头筒椤?/p>

