摘要: 避免 SQL injection 攻击的传统方法之一是,把它作为一个输入合法性检查的问题来处理,只接受列在白名单中的字符,或者识别并避免那些列在黑名单中的恶意数据。白名单方法是一种非常有效方法,它可以强制执行严格的输入检查规则,但是参数化的 SQL 指令所需维护更少,而且能提供更好的安全保障。而对于 阅读全文
posted @ 2019-11-15 17:51 陈咬金 阅读(8939) 评论(0) 推荐(1) 编辑
摘要: Abstract: 在 PaperDao.java 的第 40 行,checkQuesUsed() 方法调用通过不可信来源的输入构建的 SQL 查询。通过这种调用,攻击者能够修改指令的含义或执行任意 SQL 命令。 Explanation: SQL injection 错误在以下情况下发生: 1. 阅读全文
posted @ 2019-11-15 17:46 陈咬金 阅读(1072) 评论(0) 推荐(0) 编辑
摘要: Abstract: ManagerUtils.java 中的方法 send() 会使机密信息处理不当,从而危及到用户的个人隐私,通常这是一种非法行为。 Explanation: Privacy Violation 会在以下情况下发生: 1. 用户私人信息进入了程序。 2. 数据被写到了一个外部介质, 阅读全文
posted @ 2019-11-15 17:46 陈咬金 阅读(3807) 评论(1) 推荐(0) 编辑
摘要: Abstract: 攻击者可以控制 AttachmentController.java 中第 205 行的 File() 文件系统路径参数,借此访问或修改其他受保护的文件。 Explanation: 当满足以下两个条件时,就会产生 path manipulation 错误: 1. 攻击者可以指定某一 阅读全文
posted @ 2019-11-15 17:44 陈咬金 阅读(7550) 评论(0) 推荐(0) 编辑
摘要: Abstract: 在配置文件中存储明文密码,可能会危及系统安全。 Explanation: 在配置文件中存储明文密码会使所有能够访问该文件的人都能访问那些用密码保护的资源。程序员有时候认为,他们不可能阻止应用程序被那些能够访问配置文件的攻击者入侵,但是这种想法会导致攻击者发动攻击变得更加容易。健全 阅读全文
posted @ 2019-11-15 17:43 陈咬金 阅读(3299) 评论(0) 推荐(0) 编辑
摘要: Abstract: Hardcoded password 可能会危及系统安全性,并且无法轻易修正出现的安全问题。 Explanation: 使用硬编码方式处理密码绝非好方法。这不仅是因为所有项目开发人员都可以使用通过硬编码方式处理的密码,而且还会使解决这一问题变得极其困难。一旦代码投入使用,除非对软 阅读全文
posted @ 2019-11-15 17:42 陈咬金 阅读(4848) 评论(0) 推荐(0) 编辑
摘要: Abstract: ArticleController.java 文件将未验证的数据传递给第 135 行的 HTTP 重定向函数。如果允许未验证的输入控制重定向机制所使用的 URL,可能会有利于攻击者发动钓鱼攻击。 Explanation: 通过重定向,Web 应用程序能够引导用户访问同一应用程序内 阅读全文
posted @ 2019-11-15 17:41 陈咬金 阅读(3008) 评论(0) 推荐(0) 编辑
摘要: Abstract: 在 remoting-servlet.xml 文件的第 11 行,应用程序会以远程服务的形式暴露 spring bean。默认情况下,这些远程服务不要求身份验证,也不要求进出该服务器的信息必须是明文形式。这就使攻击者有机会访问需要特定权限的操作或者获取敏感数据。 Explanat 阅读全文
posted @ 2019-11-15 17:40 陈咬金 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: Abstract: Hardcoded 加密密钥可能会削弱系统安全性,一旦出现安全问题将无法轻易修正。 Explanation: 请勿对加密密钥进行硬编码,因为这样所有项目开发人员都能查看该加密密钥,而且还会大大增加解决问题的难度。一旦代码被使用,除非对软件进行修补,否则加密密钥将再也不能更改。如果 阅读全文
posted @ 2019-11-15 17:39 陈咬金 阅读(8347) 评论(0) 推荐(0) 编辑
摘要: Abstract: Channel.java 中的类既是数据库持久实体,又是动态绑定请求对象。如果允许使用请求参数自动填充数据库持久实体,攻击者将能够在关联实体中创建计划外的数据库记录,或者更新实体对象中的计划外字段。 Explanation: 持久对象通常绑定到底层数据库,并由持久性框架(如 Hi 阅读全文
posted @ 2019-11-15 17:39 陈咬金 阅读(1560) 评论(1) 推荐(0) 编辑
摘要: Abstract: 在运行时对用户控制的对象流进行反序列化,会让攻击者有机会在服务器上执行任意代码、滥用应用程序逻辑和/或导致 Denial of Service。 Explanation: Java 序列化会将对象图转换为字节流(包含对象本身和必要的元数据),以便通过字节流进行重构。开发人员可以创 阅读全文
posted @ 2019-11-15 17:38 陈咬金 阅读(5109) 评论(0) 推荐(0) 编辑
摘要: Abstract: ext-all-debug.js 文件将未验证的用户输入解析为第 11304 行的源代码。在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码。 Explanation: 许多现代编程语言都允许动态解析源代码指令。这使得程序员可以执行基于用户输入的动态指令。当程序员错误地认 阅读全文
posted @ 2019-11-15 17:36 陈咬金 阅读(2629) 评论(0) 推荐(0) 编辑
摘要: Abstract: article_attrs.jsp 中的方法 _jspService() 向第 79 行的 Web 浏览器发送非法数据,从而导致浏览器执行恶意代码。 Explanation: Cross-Site Scripting (XSS) 漏洞在以下情况下发生: 1. 数据通过一个不可信赖 阅读全文
posted @ 2019-11-15 17:35 陈咬金 阅读(4407) 评论(3) 推荐(0) 编辑
摘要: Abstract: article_property.jsp 中的方法 _jspService() 向第 151 行的 Web 浏览器发送非法数据,从而导致浏览器执行恶意代码。 Explanation: Cross-Site Scripting (XSS) 漏洞在以下情况下发生: 1. 数据通过一个 阅读全文
posted @ 2019-11-15 17:29 陈咬金 阅读(3133) 评论(0) 推荐(0) 编辑
摘要: Abstract: jsmind.js 中的方法 onreadystatechange() 向第 781 行的 Web 浏览器发送非法数据,从而导致浏览器执行恶意代码。 Explanation: Cross-Site Scripting (XSS) 漏洞在以下情况下发生: 1. 数据通过一个不可信赖 阅读全文
posted @ 2019-11-15 16:50 陈咬金 阅读(3725) 评论(0) 推荐(0) 编辑