近日,微信團(tuán)隊(duì)發(fā)布公告,為了進(jìn)一步提升微信小程序的安全性和用戶(hù)體驗(yàn),目前平臺(tái)對(duì)提審的小程序均需進(jìn)行安全檢測(cè)。平臺(tái)將自2022年7月6日開(kāi)始在代碼審核環(huán)節(jié)對(duì)采用內(nèi)置JavaScript解釋器的小程序進(jìn)行駁回,以下是相關(guān)詳情。
微信團(tuán)隊(duì)表示,在檢測(cè)過(guò)程中,發(fā)現(xiàn)有小程序采用內(nèi)置JavaScript解釋器(如eval5、estime、evil-eval等)的方式,動(dòng)態(tài)執(zhí)行JS代碼以及對(duì)小程序wxml代碼進(jìn)行熱更新。對(duì)于使用解釋器的小程序,平臺(tái)將自2022年7月6日開(kāi)始在代碼審核環(huán)節(jié)進(jìn)行駁回,請(qǐng)各位開(kāi)發(fā)者于2022年7月6日前完成自查、修復(fù)。
平臺(tái)列舉了幾種常見(jiàn)違規(guī)案例,供大家參考:
1、動(dòng)態(tài)下發(fā)代碼執(zhí)行
某小程序引入JS解釋器模塊,在預(yù)埋場(chǎng)景下觸發(fā)動(dòng)態(tài)執(zhí)行代碼的邏輯,從而從服務(wù)端后臺(tái)拉取要?jiǎng)討B(tài)執(zhí)行的代碼或字段,在JS解釋器中動(dòng)態(tài)執(zhí)行代碼;
2、小程序頁(yè)面文件熱更新
下面這個(gè)例子為某小程序引入JS解釋器模塊執(zhí)行小程序熱更新;
3、其他情況
部分?jǐn)?shù)值計(jì)算類(lèi)小程序會(huì)引入解釋器來(lái)執(zhí)行數(shù)學(xué)表達(dá)式運(yùn)算功能,對(duì)于數(shù)值計(jì)算,請(qǐng)使用其他方式,不得使用解釋器提供的動(dòng)態(tài)eval代碼執(zhí)行能力實(shí)現(xiàn);
4、修復(fù)指引
若小程序在代碼提審階段因存在解釋器被要求整改,請(qǐng)根據(jù)代碼提審反饋,自查相應(yīng)的文件,在刪除相應(yīng)的解釋器文件后重新提交代碼審核;
其他常見(jiàn)問(wèn)題
Q1:小程序中解釋器文件是第三方包依賴(lài)引入的,這種如何處理?
A1:平臺(tái)不允許開(kāi)發(fā)者使用JS解釋器來(lái)動(dòng)態(tài)執(zhí)行代碼,若小程序代碼中存在JS解釋器邏輯,請(qǐng)根據(jù)小程序?qū)徍笋g回細(xì)節(jié)自行移除或聯(lián)系依賴(lài)提供者、服務(wù)商移除后再次提交審核;
Q2:經(jīng)過(guò)自查后提交代碼仍提示存在解釋器,這種如何處理?
A2:請(qǐng)確保提交的小程序代碼中不存在解釋器文件以及JavaScript代碼解析模塊非正常使用,若仍存在問(wèn)題,請(qǐng)?zhí)峤豢头?fù)查。