小程序开发的内容安全审计
小程序开发
浏览:886 次

最近,我做了一个图文并茂的微信小程序,担心没有自我审查就上不去。果然,当微信小程序提交代码进行审核时,它没有通过审核。给出以下提示:为避免滥用您的小程序,请改进内容审查机制,例如调用小程序内容安全API,或使用其他技术和手动审查方法来过滤色情、非法和其他有害信息,以确保发布内容的安全。
好吧,我去后台看到审核员测试了一个单词xxx并显示出来,这直接导致了小程序的失败。
形象
好消息是已经给出了解决方案,所以在这里做一个记录。
调用小程序内容安全API
它相当完整。我主要使用图像和文本审查,所以我记录了安全的使用。imgSecCheck和security.msgSecCheck。
形象
开放云开发
在微信开发者工具中打开您的小程序项目,单击“云开发”菜单进入,如果您之前没有打开,请根据提示填写云开发环境的名称。
形象
创建云函数
在app下创建文件夹功能。用于存储云函数的applet项目的js对等目录
图像.png
在项目中。config在json中,配置“cloudfunctionRoot”:“functions/”,
{
“说明”:“项目配置文件”,
“cloudfunctionRoot”:“functions/”,
“包选项”:{
“忽略”:[]
}, ...
.......
形象
编译它。您可以看到,您之前创建的环境名称添加在functions文件夹中的更改之后。右键单击functions文件夹以调用菜单“创建节点”。js云函数
形象
我在这里创建了一个名为ContentCheck的云函数。呼叫安全。imgSecCheck和安全性。msgSecCheck,您需要声明权限。您需要配置一个配置。json文件。如果没有配置。json,您需要自己创建一个。
图像.png
配置的配置。json如下:
{
“权限”:{
“openapi”:[
“security.msgSecCheck”,
“security.imgSecCheck”
]
}
}
ContentCheck云函数的目录结构如下:
├─检查内容
│ 配置。Json//云调用权限配置
│ 指数Js//ECS节点入口文件
│ 包裹Json//NPM包依赖性
│ ...
编辑索引。ContentCheck云函数目录中的js文件
//云功能入口文件
const cloud=需要('wx-server-sdk')
云初始化()

//云功能输入功能
出口。main=异步(事件、上下文)=>{
尝试{
让msgR=假;
让imageR=假;
//检查文本内容是否违反规则
if(事件.msg){
msgR=等待cloud.openapi.security.msgSecCheck({
内容:event.msg
})
}
//检查图像内容是否违反规则
if(事件.img){
imageR=等待cloud.openapi.security.imgSecCheck({
媒体:{
标题:{
“内容类型”:“app/八位字节流”
},
contentType:'image/png',
值:Buffer.from(event.img)
}
})
}
返回{
消息R,
成像仪
};
}捕获(e){
返回e
}
}
编辑云功能后,右键单击ContentCheck调出菜单并选择Upload and Deploy:cloud Installation Dependency
形象
小心
使用微信小程序云功能开发本地需要安装节点。js环境并配置环境变量。以前,新计算机没有安装Node。js环境,导致上传云函数失败。解决方案是安装Node.js。
验证节点Js是否安装npm-v和Node-version
形象
调用云函数
在app.js中初始化云环境。您可以在参数env的云开发设置中看到当前环境ID
//app.js
app({
onLaunch:函数(){
wx.cloud.init({
环境:“manjaro-7l50h”,
traceUser:真

})
...
},
})
形象
检查文本是否违反规则
//调用ContentCheck云函数检查文本是否违反规则
wx.cloud.call函数({
name:“ContentCheck”,
数据:{
消息:_ this.data.msg,
},
成功(res){
控制台.log(res.result)
如果(res.result.msgR.errCode==87014){
wx.showToast({
标题:“文本冲突”,
})
}
}
})
//控制台。非法文本打印的日志(res.result)
{
消息R:{
错误代码:87014,
errMsg:“openapi.security.msgSecCheck:失败风险内容提示:[cSp9ka06218622]”
},
图像R:错误
}
//控制台。用于普通文本打印的日志(res.result)
{
消息R:{
错误代码:0,
错误消息:“openapi.security.msgSecCheck:ok”
},
图像R:错误
}
检查图片是否违反规则
//调用ContentCheck云函数检查图片是否违反规则
wx.cloud.call函数({
name:“ContentCheck”,
数据:{
img:_此数据.img
},
成功(res){