微信小程序> 小程序开发笔记七—加入内容安全检测-小程序如何安全测试-小程序安全测试

小程序开发笔记七—加入内容安全检测-小程序如何安全测试-小程序安全测试

浏览量:2251 时间: 来源:angyangan9569
1.

前两天在发布小程序版本的时候,审核被拒绝,原因是用户在发表内容的时候,没有对内容做安全检测,例如国家领导人姓名之类的。后来了解到小程序官方文档上有提供相关检测接口,包括文本及图片检测,这里我只用到了文本检测

使用msgSecCheck接口检测文本2.

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html请求接口地址是https://api.weixin.qq.com/wxa/msg_sec_check?access_tokenACCESS_TOKEN,为POST请求,请求参数为:

access_token接口调用凭证content要检测的文本内容,长度不超过500KBletcontentparams.content;letaccess_tokenawaitthis.app.redis.get('access_token');leturl`https://api.weixin.qq.com/wxa/msg_sec_check?access_token${access_token}`;letdata{content:content}letcheckResultawaitproxy(url,{headers:{'Content-Type':'application/json'},method:'POST',body:JSON.stringify(data)});checkResultJSON.parse(checkResult);if(checkResult.errcode87014){//内容含有违法违规内容responsethis.ResultResponse.createByErrorMsg('内容含有违法违规内容');}定时刷新access_token凭证3.

access_token是接口调用凭证,通过getAccessToken接口获取https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

4.

接口请求地址是https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappidAPPIDsecretAPPSECRET,为GET请求,请求参数为:

grant_type填写client_credentialappid小程序唯一凭证,即AppIDsecret小程序唯一凭证密钥,即AppSecret5.

接口返回数据除了access_token还有expires_in过期时间,这里有效期是7200s,也就是2小时候该凭证失效,所以我们需要通过定时器定时刷新获取access_token,然后存到redis里面

/////////get_access_token.js文件constSubscriptionrequire('egg').Subscription;/***获取微信accessToken定时任务90(5400s)分钟刷新一次*/classGetAceessTokenextendsSubscription{//通过schedule属性来设置定时任务的执行间隔等配置staticgetschedule(){return{interval:'5400s',//1分钟间隔隔单位m分、s秒、ms毫秒type:'all',//all指定所有的worker都需要执行worker每台机器上只有一个worker会执行这个定时任务immediate:true,//配置了该参数为true时,这个定时任务会在应用启动并ready后立刻执行一次这个定时任务。disable:false//配置该参数为true时,这个定时任务不会被启动。};}//subscribe是真正定时任务执行时被运行的函数asyncsubscribe(){letctxthis.ctx;ctx.logger.info('-----getAccessTokenstart----');try{awaitctx.service.userService.getAccessToken();}catch(error){console.log('获取accesstoken失败',error)}ctx.logger.info('-----getAccessTokenend----');}}module.exportsGetAceessToken;/////////userService.js文件/***获取AccessToken,存储到redis里面,用于安全内容检查每90分钟刷新一次*/asyncgetAccessToken(){leturl`https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappid${config.key.appid}secret${config.key.secret}`;letresultawaitproxy(url,{method:'GET'});resultJSON.parse(result);console.log('getAccessTokenresult',result)awaitthis.app.redis.set('access_token',result.access_token);awaitthis.app.redis.set('expires_in',result.expires_in);//目前有效期7200s2小时}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎