当前位置:首页 > 新闻动态 > 网站文章

微信小程序图片上传以及内容安全审核详解

来源: 浏览:126 时间:2023-08-04

原由

之前有开发一个微信小程序,拥有图片上传的功能,上线运行后一直表现良好,用户渐渐增多。

但突然有一天,收到一个系统消息:提示我小程序存在内容安全风险,缺乏对不法违规内容的过滤机制,需要整改,消息如下图:

该消息是安全风险警告,需要限期内进行整改调整,否则就会禁用小程序的一些功能,比如不能被搜索、不能通过二维码打开小程序、不能分享小程序内容、不能跳转其他小程序等等。

鉴于此,小程序不进行修改肯定是不行的,否则相关功能将不可用,搜索流量消失,影响实在有点大。
在进行修改前还得先了解下微信小程序的内容审核的具体情况,根据信息提示里的链接,直接查看。

内容审核种类

在微信小程序平台运营规范-行为规范-内容安全部分,提到了以下内容:

小程序涉及未设置过滤违法、违规等不当信息内容的机制。
必须调用内容安全检测接口校验文本/图片是否含有敏感内容,提升信息安全防护能力,降低被恶意利用导致传播恶意内容的风险。

针对内容安全,目前主要是文本输入和图片上传,需要进行内容安全的检测。

主要针对输入文本或上传的图片中存在的色情、时政违规、暴恐等有害内容,需要进行内容审核,过滤敏感信息,确保输入内容是安全的。

而在实际开发中,我们可以使用微信小程序提供的开放接口,对这两块内容进行基本的安全检测:

imgSecCheck

以上接口都有多种调用方式,包括https服务、云调用以及第三方调用,本文将重点介绍云调用的方式,在此之前,我们需要先了解小程序云函数。

小程序云开发

微信提供了云开发功能,在小程序中,我们也可以方便的建立云开发服务,协助我们快速的进行功能开发,避免搭建服务器。具体的微信云开发介绍,可以查看微信小程序开发文档。

如果要在小程序中使用云服务,则我们创建小程序的时候,选择开启微信云服务,即可:

需要明确的一点是,微信提供的云服务是需要收费的,目前有1个月的试用期,可以使用。

本文的重点并不是如何搭建微信小程序云开发服务,而是针对内容安全的检测处理,所以不再一一介绍云开发这块的内容,网上有各种教程,大家可自行搜索。

针对内容安全检测,我们使用云调用的时候,可以使用云函数,前提是已经搭建好云开发服务。

图片检测

openapi.security.imgSecCheck

创建云函数

cloudfunctions
新建Node.js云函数
checkImageSeccloudfunctionscheckImageSec
  • config.json:云函数基本配置
  • index.js:云函数入口执行文件
  • package.json:云函数项目设置及包依赖
config.jsonopenapi.security.imgSecCheck
NodeNode.jswx-server-sdk

编写图片检测代码

index.jsopenapi.security.imgSecCheck
cloud
ArrayBufferBuffer
checkImageSec

小程序图片处理

在调用云函数之前,我们先实现小程序的图片上传功能。

图片上传

chooseMedia
tempFilePath
imgSecCheck

要检测的图片文件,格式支持PNG、JPEG、JPG、GIF,图片尺寸不超过 750px x 1334px

所以,我们还需要对接收到的大尺寸图片进行尽量小的压缩。

图片压缩

getImageInfo
imgInfo
wx.canvasToTempFilePath

云函数安全检测接入

Node.jsBufferArrayBufferArrayBuffer
readFileSyncArrayBuffer

接着,我们就可以调用云函数,进行检测处理,调用方式也比较简单:

至此,我们调用云函数,进行图片内容安全检测的基本代码都完成了,通过这种方法,能够初步检测图片是否合规,禁止违规图片上传并显示出来。

文本检测

openapi.security.msgSecCheck
openidcloud.getWXContext()checkTextSec
checkTextSec

以上代码就是调用云函数处理文本内容的安全检测,与图片检测基本类似。

最后的坑

虽然,我们已经使用了微信小程序提供的开放服务,进行了图片和文本的内容安全检测,但是并不能完全解决问题,微信小程序开发者文档里已有提醒:

这里建议开发者最好进行人工审核,以弥补AI智能审核的不足。

而要想进行人工审核,必然需要上传用户的图片和输入文本,通过后台审核干预的情形进行处理。这个成本可以说是很大的,很多小程序做不到。
所以,当我们的小程序因为内容安全被封禁以后,在找微信客服人员进行申诉时,如果微信客服人员死扣人工审核的话,对于个人开发者来说这个小程序基本上就算玩完,可以直接弃用。

因为申诉失败的概率实在太大了!

总结

地址 · ADDRESS

地址:建邺区新城科技园嘉陵江东街18号2层

邮箱:309474043@qq.Com

点击查看更多案例

联系 · CALL TEL

400-8793-956

售后专线:025-65016872

业务QQ:309474043    售后QQ:1850555641

©南京安优网络科技有限公司 版权所有   苏ICP备12071769号-4  网站地图