小程序开发的内容安全审计

小程序开发


浏览: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){