在生产中有人可能会利用漏洞快速重复提交订单,导致用户在活动中享受多笔订单优惠。更严重的是,假如黑客利用漏洞执行一些恶意操作,如获取或者篡改体系数据或者权限,这可能导致用户数据泄漏,进而被告上法庭。
现在你意识到 Web 安全的重要性了吧。那我们该如何防范 Web 安全问题呢?这就是本讲我要给你重点介绍的内容了。希望学完后,你能轻松应对一些常见的 Web 安全问题。 Web 安全风险有哪些?
作为软件工程师,我们通常必要留意哪些 Web 安全风险呢?我的建议是,可以参考 OWASP Top 10 。
什么是 OWASP 呢?OWASP 是 Open Web Application Security Project 的缩写,它是一个构造,中文名称叫“开放式Web应用程序安全项目”。OWASP 每年都会发布排名前十的 Web 安全风险,也就是前面提到的 OWASP Top 10 。好比 2020 年 OWASP Top 10 如下:
注入
失效身份验证和会话管理
敏感信息泄露
XML 外部实体注入攻击(XXE)
存取控制停止
安全性错误设置
跨站脚本攻击(XSS)
不安全的反序列化
使用具有已知漏洞的组件
日志记载和监控不足
这 10 种风险在这里我就不一一介绍了,重点为你介绍下 Top 1 “注入”,因为它的风险最高。为什么这么说呢?
“注入”允许攻击者上传一段可解释执行的代码片段,而该代码片段可能帮助攻击者获取体系管理权限或者隐私信息。好比,黑客可能通过“SQL 注入”获取数据库表中所有的用户名和密码,或者通过“shell 脚本注入”等方式获取体系管理权限,进而危害整个体系的安全。
实际上,Top 4 XXE 和 Top 7 XSS 也是利用了“注入”来实现的。XXE 重要是将恶意代码注入 XML 文件中,利用服务器解析 XML 文件的漏洞来获取服务器上的额外数据。而 XSS 重要是利用浏览器渲染前端页面的漏洞,将恶意代码注入页面的数据中,窃取用户信息或执行恶意操作。
“注入”的攻击对象重要是两类: