微信小程序线上版本涉及到内容发布评论等,就需要进行安全检测,否则官方会上传一些huang图等敏感信息,这样就对我们的小程序的运行非常的不友好。
微信小程序图片与文字安全检测security.msgSecCheck和security.imgSecCheck
一、security.msgSecCheck文字安全检测的使用
security.msgSecCheck | 微信开放文档 (qq.com)
由于我的项目使用的是云开发,所以我就演示下云函数中如何使用
//index.js中
//openid为用户的唯一标识,我是通过参数传递过来的。当然你也可以这样获取,更方便cloud.getWXContext().OPENID
//text为要检测的值
exports.main = async (event, context) => {
const { openid, text } = event;
try {
const result = await cloud.openapi.security.msgSecCheck({
openid,
scene: 2,
version: 2,
content: text,
});
return result;
} catch (err) {
return err;
}
};
//config.json中
{
"permissions": {
"openapi": [
"security.msgSecCheck"
]
}
}
//js中
wx.cloud.callFunction({
name: "定义的云函数名",
data: {
openid: '用户的openid',
text: '要检测的值',
},
})
.then((checkTextRes) => {
const resultSuggest = checkTextRes.result.result.suggest;
if(resultSuggest === 'pass') {
console.log('通过')
}else {
console.log('不通过')
}
});
非常的简单,官方也提供了详细的文档。
二、security.imgSecCheck图片安全检测的使用
HTTPS 调用 | 微信开放文档 (qq.com)
这个的使用就相对来说比较有点繁琐了,要考虑的东西很多文章来源:https://www.toymoban.com/news/detail-412337.html
//index.js中
const cloud = require("wx-server-sdk");
const axios = require("axios");
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); // 使用当前云环境
// 云函数入口函数
exports.main = async (event, context) => {
let buffer = null;
//通过这个请求拿到图片的arraybuffer流,因为检测图片使用的是arraybuffer
await axios({
method: "get",
url: event.imgData, // imgData是刚才传过来的
responseType: "arraybuffer",
headers: { "Content-Type": "*" },
}).then((res) => {
buffer = res.data;
});
try {
var result = await cloud.openapi.security.imgSecCheck({
media: {
contentType: "image/png",
value: Buffer.from(buffer),
},
});
return result;
} catch (err) {
return err;
}
};
//config.json
{
"permissions": {
"openapi": [
"security.imgSecCheck"
]
}
}
//js中
wx.cloud
.callFunction({
name: "云函数名称",
data: {
//使用wx.cloud.CDN避免传输的图片过大
imgData: wx.cloud.CDN({
type: "filePath",
filePath: '选择的图片的路径',
}),
},
})
.then((res) => {
if (res.result.errCode === 87014) {
wx.showToast({
title: "图片可能违规,请仔细检查后再试!",
icon: "none",
duration: 5000,
});
} else {
wx.showToast({
title: "图片检测通过",
icon: "none",
duration: 1000,
})
}
});
其实还挺简单的,就是细节比较多,当时做的时候踩了一堆坑,所以发一下,大家就避免少踩坑了文章来源地址https://www.toymoban.com/news/detail-412337.html
到了这里,关于微信小程序图片与文字安全检测security.msgSecCheck和security.imgSecCheck的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!