当前位置: 首页 > web >正文

【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十二节:网关安全-信息过滤

【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十二节:网关安全-信息过滤

  • 收集用户的信息
  • 识别有害的信息
  • 对有害信息的处理
    • 对违规操作的处理
    • 对垃圾信息的处理
  • 总结

本篇文章我们来学习网站中的信息过滤与反垃圾。

收集用户的信息

在网站的安全性中,如果想做到比较全面的安全防护,其实我们应该尽可能多的收集用户的信息。也就是说用户在给我们发请求的时候,他带过来的跟用户相关的信息越多越好。这些信息有什么呢?比如说用户的IP地址,还有就是用户连接的网络情况。比如说像一些银行类的APP,如果你切换网络之后,它会让你重新登录。还有就是客户端唯一的码,比如说我们现在用的手机,安卓或者苹果都有IMEI号,是手机的唯一串码记录。

在这里插入图片描述

这些东西,除了我们刚刚提到的简单的功能之外,也就是说我们刚才所说的切换网络之后,让用户重新登录,就类似于这种功能之外,其实我们还可以做黑名单和信息过滤的功能。

如果要做那个黑名单和信息过滤呢,其实我们一共需要两个步骤:

  1. 第一步就是识别出要过滤的信息,就是如何识别出它是一个垃圾信息,也就是有害的信息。还有就是要识别有害信息的生产方,也就是比如说我们刚才说的IP地址,或者说手机的IMEI号,就是手机的串码,其实它就能标出一个唯一的信息发送方。
  2. 第二步就要对信息进行处理。

识别有害的信息

有害的信息它并不一定是一个信息,它不一定是文本文字或者视频音频,它有可能是发出去的一个指令,这个也叫有害信息。比如说系统中有a和b两个用户,那么a用户去操作b用户的数据,比如说b用户有一个订单,a用户想把这个订单给退掉,这个很滑稽的一个事情。

在这里插入图片描述

那么在这种情况下,我们在数据存储的时候就应该给数据做好归属,比如说b的数据就归属于b,比如说在mysql的行记录中,通过字段来标识信息的归属。

对有害信息的处理

对违规操作的处理

那么对于识别出的违规信息或者违规的操作,我们需要进行处理?我们可以给用户提示一个“用户操作非法”,当然我们也可以用非常友好的方式对用户进行提示,比如说“系统繁忙”这一类的也是可以的。

在这里插入图片描述

有的时候它不一定说这个信息真的对我们系统有什么危害,而是一个信息操作的次数太多,也是有危害的,因为请求我们系统多,对我们系统的资源是一个浪费。我们可以做一些限制性的规则,比如说同一个IP地址,从同一个设备上或者是同一个IMEI号对某个操作在规定的时间内不能超过多少次。

在这里插入图片描述

举个例子,我们比如说微信在五秒钟(这个数字是我自己说的),不能添加超过两个的好友。微信是有类似的限制的,但是我们这里所说的微信的那个时间,不一定准确。

这里说明一个什么问题呢?这里就是说明我们需要收集用户发出信息的IP地址,或者用户设备的串码,以及从这个手机上发出这个操作。

在这里插入图片描述

有人说那操作如何识别呢?其实有两种方式,一种是统计用户点击按钮的次数,或者你添加好友的那个按钮的次数在前端可以进行记录。还有一种方式呢,就是说在后端,每个用户请求一个接口,那么系统收到用户对这个接口的请求,我们判断一下这个接口该用户操作的次数是多少,我们设置一个阈值,我们就可以进行判断。

对垃圾信息的处理

前面举的例子是关于操作的,还有一些是对垃圾信息的处理。比如用户在向系统提交参数的时候,参数中有一些不合适的信息,比如说反动、骂人的粗俗词汇。我们呢,要将这些词汇进行识别,并且进行过滤。

在这里插入图片描述

那么常用的过滤手段有哪些呢?其实最重要的一个就是文本匹配。我找出你的这些敏感词,比如说用户发了一个敏感词,比如说什么色情暴力之类的,通常在我们在网站中,我们会维护一份敏感词的列表,只要你的词在我的这些列表里面,那么就算你是一个敏感词。如果和用户匹配上呢,那么就需要对这这些信息进行消毒处理,比如说将敏感词替换成星号,或者说拒绝用户提交。

这个就涉及到一些语义分析,词法分析等等。这些都有专门的这种框架或者是中间件去做,我们做业务开发的,如果不集中在这些词法分析和语义分析上,其实我们也不用太多太过多的关注,借助于工具就可以了。

那么如何判断用户的信息中是否有敏感词呢?如果敏感词比较少,用户提交的文本信息也比较短,我们可以简单的用正则表达式去做。

在这里插入图片描述

但是一般用正则表达式的效率会比较差,很多用户发布的信息也很长,每天网站的这种提交过来的数据也很多,网站并发量也较高的时候,那么我们就需要选用别的方式来解决了,我们可以利用一些搜索的中间件,比如说es进行匹配和过滤。

在这里插入图片描述

好了,上面我们所说的这些,都可以在网关来做,这就是我们前面讲的涉及到网关安全性的地方。

总结

我们这里总结一下跟网关安全性相关,我们需要做的一些事情。

在这里插入图片描述

因为网关是我们对外的第一道防线,所以要应对一些攻击性的请求,比如说我们前面讲过XSS,还有SQL注入,还有CSRF攻击。

网关中还有一些加解密的场景,比如说有的时候需要对用户的数据进行单向的散列加密,最常见的一个例子就是密码的对比,就需要我们在网关中,做一些信息加密和解密技术的集成。我们前面讲过,一些单向加密,对称加密,非对称加密,信息摘要加密文,这一些东西其实用户在向我们网关提交请求的时候,我们都会用到。

还有就是有害信息,垃圾信息,违规操作。比如说识别什么信息是有害的,什么信息是垃圾信息。类似于我们手机识别垃圾信息,手机识别垃圾信息怎么识别呢?比如说一些贷款类的、银行类的那些号码,或者说根据发信息的那个号码来识别的。一是通过关键词,二是根据来源。在用户给我们后端发请求的时候要带上这个手机串码和IP地址,就是这一类的信息。我们在开发客户端的时候,就把这些信息从用户的设备上采集下来,这样的话便于我们去标记一些垃圾信息。

http://www.xdnf.cn/news/18203.html

相关文章:

  • 哈希表与unorder_set,unorder_map的学习
  • 【Linux系列】常见查看服务器 IP 的方法
  • 深入了解 Filesystem Hierarchy Standard (FHS) 3.0 规范
  • 17.5 展示购物车缩略信息
  • 【Linux】文件基础IO
  • Google Earth Engine | (GEE)逐月下载的MODIS叶面积指数LAI
  • Rust 入门 生命周期(十八)
  • 【牛客刷题】字符串按索引二进制1个数奇偶性转换大小写
  • C#高级语法_委托
  • java基础(十)sql的mvcc
  • 字节 Golang 大模型应用开发框架 Eino简介
  • 进程互斥的硬件实现方法
  • 私人AI搜索新突破:3步本地部署Dify+Ollama+QwQ,搜索能力MAX
  • 《动手学深度学习v2》学习笔记 | 1. 引言
  • Nacos 注册中心学习笔记
  • C++入门自学Day11-- String, Vector, List 复习
  • Kafka 面试题及详细答案100道(23-35)-- 核心机制2
  • 3D打印——给开发板做外壳
  • 最新技术论坛技术动态综述
  • XF 306-2025 阻燃耐火电线电缆检测
  • 【Linux | 网络】高级IO
  • JMeter(进阶篇)
  • (一)Python + 地球信息科学与技术 (GeoICT)=?
  • CentOS7安装部署GitLab社区版
  • 第3章 Java NIO核心详解
  • Portkey-AI gateway 的一次“假压缩头”翻车的完整排障记:由 httpx 解压异常引发的根因分析
  • java八股文-(spring cloud)微服务篇-参考回答
  • FreeRTOS在中断服务例程(ISR)中使用队列
  • 小白成长之路-k8s部署discuz论坛
  • Python爬虫-解决爬取政务网站的附件,找不到附件链接的问题