OWASP Top Ten
OWASP Top 10是一个面向开发人员和web应用程序安全性的标准意识
文档。它代表了关于web应用程序最关键的安全风险的广泛共识。
十大Web应用程序安全风险(2017版)
- 注入:注入缺陷,如SQL、NoSQL、OS和LDAP注入,当将不受信任的数据作为命令或查询的一部分发送到解释器时注入缺陷随即产生。攻击者的恶意数据可以欺骗解释器执行非预期的命令或在没有适当授权的情况下访问数据。
- 失效的身份认证:与身份验证和会话管理相关的应用程序功能通常会错误地实现,从而使攻击者能够破坏密码,密钥或会话令牌,或者利用其他实现缺陷来临时或永久地假定其他用户的身份。
- 敏感数据泄露:许多Web应用程序和API无法正确保护敏感数据,例如金融,医疗保健和PII。 攻击者可能会窃取或修改这些受保护程度不高的数据,以进行信用卡欺诈,身份盗用或其他犯罪。 敏感数据可能会在没有额外保护的情况下受到损害,例如静态加密或传输中加密,并且在与浏览器进行交换时需要采取特殊的预防措施。
- XML外部实体(XXE): 许多较旧的或配置不当的XML处理器都会评估XML文档中的外部实体引用。 外部实体可以使用文件URI处理程序,内部文件共享,内部端口扫描,远程代码执行和拒绝服务攻击来公开内部文件。
- 失效的访问控制: 通常,对身份验证用户允许执行的操作的限制通常未得到正确执行。 攻击者可以利用这些缺陷来访问未经授权的功能和/或数据,例如访问其他用户的帐户,查看敏感文件,修改其他用户的数据,更改访问权限等。
- 安全配置错误:安全配置错误是最常见的问题。 这通常是由于不安全的默认配置,不完整或临时的配置,开放的云存储,错误配置的HTTP标头以及包含敏感信息的冗长错误消息的结果。不仅必须安全地配置所有操作系统,框架,库和应用程序,而且还必须及时对其进行修补/升级。
- 跨站脚本XSS: 每当应用程序在未经适当验证或转义的情况下在新网页中包含不受信任的数据,或者使用可以创建HTML或JavaScript的浏览器API用用户提供的数据更新现有网页时,都会发生XSS漏洞。 XSS允许攻击者在受害者的浏览器中执行脚本,这些脚本可以劫持用户会话,破坏网站或将用户重定向到恶意网站。
- 不安全的反序列化: 不安全的反序列化通常会导致远程执行代码。 即使反序列化缺陷不会导致远程执行代码,也可以将它们用于执行攻击,包括重播攻击,注入攻击和特权升级攻击。
- 使用含有已知漏洞的组件:诸如库,框架和其他软件模块之类的组件以与应用程序相同的特权运行。 如果利用了易受攻击的组件,则此类攻击可能会导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和API可能破坏应用程序防御,并造成各种攻击和影响。
- 日志记录和监控不足:日志记录和监控不充分,再加上事件响应的缺失或无效集成,使攻击者可以进一步攻击系统,保持持久性,转向更多系统以及篡改,提取或破坏数据。 大多数违规研究表明,检测到违规的时间超过200天,通常由外部各方而不是内部流程或监视来检测。
数据和代码
数据:服务器端(数据库、内存数据、文件系统等)、客户端(本地cookie、Flash cookie等)、传输中(XML数据、JSON数据)、文本数据(HTML、CSS、JavaScript)、图片数据和多媒体数据(Flash、MP3、Movie等)
代码:就是要执行的程序,代码被执行,产生对应的数据内容。一般情况下数据和代码都是分离,一旦输入的数据被当作程序代码来执行,攻击就产生了,比如SQL注入、XSS跨站脚本攻击等。
同源策略
是浏览器的一种安全机制。不同域的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
不同域和同域
同域要求两个站点同协议、同域名和同端口。