①注入

将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL、NoSQL、OS和LDAP注入的注入缺陷。
攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。

②失效的身份认证

通过错误使用应用程序的身份认证和会话管理功能,
攻击者能破译密码、密钥或会话令牌,
或者利用其他开发缺陷来暂时性或永久性冒充其他用户的身份。

③敏感数据泄露

许多Web应用程序和API都无法正确保护敏感数据,例如:财务、医疗和Pill数据。
攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。
未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密,
这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据。

④XML外部实体

许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。
攻击者可以利用外部实体窃取使用URL文件处理器的内部文件和
共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。

⑤失效的访问控制

未对通过身份验证的用户实施恰当的访问控制。
攻击者可以利用这些缺陷访问未经授权的功能或数据,
	例如:访问其他用户的账号、查看敏感文件、修改其他用户的数据、更改访问权限等。

⑥安全配置错误

安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置\不完整的临时配置\开源云存储\错误的HTTP标头配置
以及包含敏感信息的详细错误信息所造成的。
因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级他们。

⑦跨站脚本(XSS)

当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,
或者使用可以创建HTML或JavaScript的浏览器API更新现有的网页时,就会出现XSS缺陷。
XSS让攻击者能在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。

⑧不安全的反序列化

不安全的反序列化会导致远程代码执行。
即使反序列化不会导致远程代码执行,攻击者也可以利用他们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。

⑨使用含有已知漏洞的组件

组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。
如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务接管。
同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。

⑩不足的日志记录和监控

不足的日志记录和监控,以及事件相应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,
以及篡改、提取或销毁数据。大多数缺陷研究显示,
缺陷被检测的事件超过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。