内容安全检测【图文检测】(微信小程序心得)

这篇具有很好参考价值的文章主要介绍了内容安全检测【图文检测】(微信小程序心得)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        有UGC内容的微信小程序上架之前有一个明确的内容安全指引,需要使用一些微信小程序自带的图文媒体api 拦截一些不合规的情况。以下分享一下项目案例,以图文为主,后台为云函数,咱们用文字检测抛砖引玉,图片差不多。

        首先看下使用到的文字检测api(微信自带 + 阿里云内容检测):

/* 微信自带的文字检测 */ 

const { openid, scene, content } = ...;

// ...

const res = await acloud.openapi.security.msgSecCheck({
    openid,
    scene,
    version: 2,
    content,
    title: 'utf-8'
});

if (res.suggest === 'review') { //需要进一步审核的情况  }
if (res.label !== 100) { // 枚举值100为正常 }

// 进一步的反馈给前端...

// api 链接https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/sec-check/msgSecCheck.html

        调好之后,使用了一下,发现确实可以拦截一些文字内容,但好像不是很全面。考虑到UGC的内容是核心的东西,得尽量覆盖多一些,以防上线之后被打回,所以搜索了几个方案之后,决定配合使用阿里云的文本审核增强版,即用即付的收费策略,比较适合中小型小程序的成本控制策略。

        接入阿里文本审核有两种方式,一种用sdk,一种用http调用。上代码:

        使用之前,准备工作,主要是要拿到和api通讯的密钥:AccessKeyId 和 AccessKeySecret。详细参考官方链接 :接入api教程(前置工作 + 调用)。

        拿到密钥之后,去云函数存储在云函数的环境变量中。如下图:  

内容安全检测【图文检测】(微信小程序心得),原生微信小程序开发 问题,微信小程序        云端环境这样配置即可,本地调试时,这个配置没用,需要去本地云函数环境中需要手动配置一下密钥:

内容安全检测【图文检测】(微信小程序心得),原生微信小程序开发 问题,微信小程序

        之后,就可以正常进行本地云函数的测试,在使用密钥的时候用以下方式取得:

ALIBABA_CLOUD_ACCESS_KEY_SECRET = process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET

        下面是阿里云文本审核的两种调用方式,sdk不叫简单,可以去官方链接查看:SDK接入方式

        这种方式,我去调用的时候,看请求和阿里那边是通的,但是云函数里返回超时,和阿里的技术人员沟通几次之后,也没啥效果,后面就换用了http的方式调用,结果是👌的。下面讲一下HTTP调用的方式,需要配置请求头的信息,对接阿里那边。官方文档请看 原生HTTPS调用,说明一下,这个链接是图片审核的调用说明,使用上和文字审核大部分一致,只要改一个传参,如下图:

内容安全检测【图文检测】(微信小程序心得),原生微信小程序开发 问题,微信小程序

把这个 Action 改成 TextModeration 即可。

        然后上代码:

// 比较繁琐的地方是 签名的部分

const crypto = require('crypto');
const axios = require('axios');
const querystring = require('querystring');

const generateSignature = (paramData) => {
  let params = paramData;

  // 按照参数名称的字典顺序对参数进行排序
  let sortedParams = Object.keys(params).sort().reduce((acc, key) => {
    acc[key] = params[key];
    return acc;
  }, {});

  let canonicalizedQueryString = Object.keys(sortedParams)
  .map(key => percentEncode(key) + '=' + percentEncode(sortedParams[key]))
  .join('&');

  const HTTPMethod = 'POST';

  // 构造用于签名的字符串
  const stringToSign = 
  HTTPMethod + "&" +
  percentEncode("/") + "&" +
  percentEncode(canonicalizedQueryString);

  // 注意计算签名时,Key为AccessKey Secret加上一个"&"
  const signKey = process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET + "&";

  console.log(stringToSign);
  // 使用HMAC-SHA1算法计算签名
  const hmac = crypto.createHmac('sha1', signKey);
  
  return hmac.update(stringToSign).digest('base64');
};

let params = {
  Format: 'JSON',
  AccessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
  Version: '2022-03-02',
  Timestamp: new Date().toISOString(),
  SignatureMethod: 'HMAC-SHA1',
  SignatureVersion: '1.0',
  SignatureNonce: Date.now() + Math.random().toString(),
  Action: 'TextModeration'
};

// 签名结构体
params.Service = scene === 1 ? 'nickname_detection' : 'comment_detection';
params.ServiceParameters = JSON.stringify({
  content: contents.join('__')
}); // 选择要检测的服务类型以及传参


params.Signature = generateSignature(params); //签名

const baseURL = 'https://green-cip.cn-shanghai.aliyuncs.com';
const queryString = querystring.stringify(params);

const response = await axios.post(`${baseURL}?${queryString}`)

        一般情况下,就可以得到文字审核的结果了。

        最后把微信的文字检测和阿里的文字检测结合调用,阿里失败了就调用小程序自带的。可以在返回值里加一个tool:ali-security / wx-security,查看调用的是谁,方便调试。后续针对性的做一个返回值就行。

        小程序的文字安全审核就到这啦,图片安全检测的流程和文字一样。有啥问题,欢迎一起讨论。

 - to be continue -

---------- 最后贴一张小程序二维码(记录好的用餐体验) ---------

内容安全检测【图文检测】(微信小程序心得),原生微信小程序开发 问题,微信小程序文章来源地址https://www.toymoban.com/news/detail-840162.html

到了这里,关于内容安全检测【图文检测】(微信小程序心得)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【信息与内容安全】实验二:虚假人脸检测实验

    摘要: 在此次实验中,先尝试了自己手动搭建了一个 CNN 进行虚假人脸的分类实验,但发现有训练速度慢准确率低等缺点。所以尝试使用已有的模型(resnet-18)和预训练的参数进行迁移学习,包括尝试了直接把卷积层借用为固定特征提取器和 Fine-tuning 的方法,大大提高了训练

    2024年02月04日
    浏览(68)
  • 毕业设计:基于聚类算法的网站内容安全检测系统

    目录 前言 项目背景 设计思路 2.1 支持向量机 2.2 聚类算法 模型训练 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级

    2024年02月21日
    浏览(41)
  • 小程序安全检测(一)

    1、 明文或弱加密传输用户名、密码和验证码等敏感信息 整改优先级 :高 问题描述 : 用户登录过程中,在与服务器端交互时明文或弱加密传输用户名、密码或者验证码等,可导致用户敏感信息泄露。 检测方法 : 利用burpsuite对被测应用进行监听,点击登录或修改密码,请求

    2024年02月09日
    浏览(45)
  • 微信小程序安全系列——文本内容安全识别

    相信很多朋友跟我遇到过相同的问题,就是在开发一些笔记或者博客的时候,会遇到一些过滤敏感、时政、黄、赌、毒这类词汇、句子等这种棘手问题。 今天我们看一下微信小程序提供的文本安全内容识别,也可以减少一些我们的工作量。通过微信的接口来为我们过滤这些敏

    2024年02月09日
    浏览(47)
  • 微信小程序 图片上传与内容安全审核

    之前有开发一个微信小程序,拥有图片上传的功能,上线运行后一直表现良好,用户渐渐增多。 但突然有一天,收到一个系统消息:提示我小程序存在内容安全风险,缺乏对不法违规内容的过滤机制,需要整改,消息如下图: 该消息是安全风险警告,需要限期内进行整改调

    2024年01月16日
    浏览(56)
  • 【极市任务——安全帽检测|yolov5】一文带你快速通过任务|使用yolov5[6.0]|和极市说明文档不一样的yolov5内容|python

    目录   时间:2022.6.23 极市的新人任务——安全帽识别通过简单的赛题带我们更好的熟悉了极市比赛、项目的打榜流程。 如果你也是深度学习爱好者,也不妨短暂停留看看!!! 1.开发环境选择 2.配置yolov5环境 3.编写代码 4.模型训练 5.模型测试 6.领取奖励 没有谁的成功是一步

    2024年02月03日
    浏览(56)
  • 微信小程序云调用security.mediaCheckAsync接口成功实例(内容安全审核接口)

    网上关于这个接口大多是介绍,我真正的用在实际环境中还是花了很多功夫在研究出来的,关于这个文章很少,微信论坛问这个的很多,有用的消息零零散散的,最后还是通过我持续不断的看才真正的完成了这个实例,不过前段日子在忙,这个实例写了也有一段时间了,有些

    2023年04月26日
    浏览(46)
  • uni-sec-check内容安全unicloud公共模块,校验微信小程序文本内容安全识别和图片智能鉴黄,uniapp进阶

    uni-sec-check内容安全是unicloud封装了微信小程序的免费接口,文本内容安全识别(msgSecCheck)和音视频内容安全识别(mediaCheckAsync),如果我没选择使用uniapp+unicloud开发的话,可以轻松从插件市场引入uni-sec-check公共模块,完成内容安全检测,包含图片和文字检测,下面就针对文

    2024年02月04日
    浏览(50)
  • Windows基线安全检测-安全配置检测

    Windows在生产环境中是使用最多的一个系统,大部分为客户端,少部分为服务端; 然而其实很多用户对windows系统不是很了解,安全配置更是如此; 因此我们安全人员要定期对员工的主机做必要的安全检测,其中基线的定期检测就是方式之一; 以下则是我亲自编写测试上线使

    2024年04月16日
    浏览(47)
  • Linux基线安全检测-服务器安全配置检测

    众所周知,服务器的安全配置是我们安全生产环境中很重要也是最为“硬性”的第一步; 譬如说,一个服务器创建好之后,它没有禁止空密码登录,那岂不是“人人都可以踩它两脚”,随便一个人都可以登录进去然后干一些“见不的人”的事情,因此,我们要打好第一枪,在

    2024年03月26日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包