Unreleased Resource: Database 未释放资源:数据库 Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资源泄露至少有两种常见的原因: - 错误状况及其他异常情况. - 未明确程序的哪一部份负责释放资源. 大部分 Unreleased Resource 问题只会导致一般的软件可靠性问题, 但如果攻击者能够故意触发资源泄漏,该攻击者就有可能通过耗尽资源池的方式发起 denial of service 攻…
Abstract 如果没有适当的 access control,就会执行一个包含用户控制主键的 SQL 指令,从而允许攻击者访问未经授权的记录. Explanation Database access control 错误在以下情况下发生: 数据从一个不可信赖的数据源进入程序. 这个数据用来指定 SQL 查询中主键的值. 例 1: 以下代码用到一个参数化指令,这个指令转义了元字符,以防止SQL injection 漏洞,并构建和执行一个 SQL 查询.该 SQL 查询指令可以搜索与指定标识符 […
Password Management: Password in Configuration File(明文存储密码) https://www.cnblogs.com/mahongbiao/p/12496042.html Command Injection(命令注入) https://www.cnblogs.com/mahongbiao/p/12494308.html Unreleased Resource: Database 未释放资源:数据库 https://www.cnblogs.com/…
Cross-Site Scripting: Persistent Abstract 向 Web 浏览器发送非法数据会导致浏览器执行恶意代码. Explanation Cross-Site Scripting (XSS) 漏洞在以下情况下发生: 数据通过一个不可信赖的数据源进入 Web 应用程序. 对于 Persistent(也称为 Stored) XSS,不可信赖的源通常为数据库或其他后端数据存储,而对于Reflected XSS,该源通常为 Web 请求. 2. 在未检验包含数据的动态内容是否…
Header Manipulation Abstract HTTP 响应头文件中包含未验证的数据会引发 cache-poisoning. cross-site scripting. cross-user defacement. page hijacking. cookie manipulation 或 open redirect. Explanation 以下情况中会出现 Header Manipulation 漏洞: 数据通过一个不可信赖的数据源进入 Web 应用程序,最常见的是 HTTP 请…
Dynamic Code Evaluation: Code Injection Abstract 在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码. Explanation 许多现代编程语言都允许动态解析源代码指令. 这使得程序员可以执行基于用户输入的动态指令. 当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出现 code injection 漏洞: 然而,若不经过适当的验证,用户指定的操作可能并不是程序员最初所…
SQL Injection SQL注入 Abstract 通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令. Explanation SQL injection 错误在以下情况下发生: 数据从一个不可信赖的数据源进入程序. 数据用于动态地构造一个 SQL 查询. 例1: 以下代码动态地构造并执行了一个SQL查询,该查询可以搜索与指定名称相匹配的项. 该查询仅会显示条目所有者与被授予权限的当前用户一致的条目. ... String userName…
File Disclosure: Spring 文件泄露(Spring框架) Abstract 若通过用户输入构造服务器端重定向路径,攻击者便能够下载应用程序二进制码(包括应用程序的类或 jar 文件) 或者查看受保护的目录下的任意文件. Explanation 在以下情况下,会发生文件泄露: 数据从一个不可信赖的数据源进入程序. 数据用于动态地构造一个路径. 例 1: 下面的代码会接受不可信赖的数据,并使用其构造服务器端转发所使用的路径. ... String returnURL = requ…
Password Management: Password in Configuration File(明文存储密码) Abstract 在配置文件中存储明文密码,可能会危及系统安全. Explanation 在配置文件中存储明文密码会使所有能够访问该文件的人都能访问那些用密码保护的资源. 程序员有时候认为, 他们不可能阻止应用程序被那些能够访问配置文件的攻击者入侵,但是这种想法会导致攻击者发动攻击变得更加容易. 健全的 password management 方针从来不会允许以明文形式存储密码…
Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Command Injection 漏洞主要表现为以下两种形式: - 攻击者能够篡改程序执行的命令: 攻击者直接控制了所执行的命令. - 攻击者能够篡改命令的执行环境: 攻击者间接地控制了所执行的命令. 在这种情况下,我们着重关注第一种情况,即攻击者控制所执行命令的可能性. 这种形式的 Command Inje…