继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: Locale Dependent Comparison 漏洞进行总结,如下: 1.Portability Flaw: Locale Dependent Comparison 1.1.产生原因: 对可能与区域设置相关的数据进行比较时,应指定相应的区域设置. 示例 1:以下示例尝试执行验证,以确定用户输入是否包含 <script> 标签. ... public String tagProcessor(String…
Portability Flaw Locale Dependent Comparison [问题描述] 该问题涉及String的toUpperCase()方法.具体通过例子演示相关现象. public class TestString { public static void main(String[] args) { String str = "Title"; System.out.println(str.toUpperCase()); } } 我们期望的结果为TITLE. 在正常逻…
继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: File Separator 和  Poor Error Handling: Return Inside Finally 漏洞进行总结,如下: 1.Portability Flaw: File Separator(文件分隔符) 1.1.产生原因: 不同的操作系统使用不同的字符作为文件分隔符.例如,Microsoft Windows 系统使用“\”,而 UNIX 系统则使用“/”.应用程序需要在不同的平台上运行时…
书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过一个不可信赖的数据源进入 Web 应用程序.对于 Reflected XSS(反射型),不可信赖的源通常为 Web 请求,只影响攻击到当前操作用户:而对于 Persisted(也称为 Stored 持久型)XSS,该源通常为数据库或其他后端数据存储,可能影响多操作用户. 2. 未检验包含在动态内容中…
继续对Fortify的漏洞进行总结,本篇主要针对  Insecure Randomness  漏洞进行总结,如下: 1.Insecure Randomness(不安全随机数) 1.1.产生原因: 成弱随机数的函数是 random(). 电脑是一种具有确定性的机器,因此不可能产生真正的随机性.伪随机数生成器 (PRNG) 近似于随机算法,始于一个能计算后续数值的种子. PRNG 包括两种类型:统计学的 PRNG 和密码学的 PRNG.统计学的 PRNG 可提供有用的统计资料,但其输出结果很容易预测…
继续对Fortify的漏洞进行总结,本篇主要针对  Denial of Service: Regular Expression  漏洞进行总结,如下: 1.Denial of Service: Regular Expression 1.1.产生原因: 实施正则表达式评估程序及相关方法时存在漏洞,该漏洞会导致评估线程在处理嵌套和重复的正则表达式组的重复和交替重叠时挂起.此缺陷可被攻击者用于执行拒绝服务 (DoS) 攻击. 示例: (e+)+ ([a-zA-Z]+)* (e|ee)+ 已知的正则表达…
继续对Fortify的漏洞进行总结,本篇主要针对 Log Forging(日志伪造)的漏洞进行总结,如下: 1.1.产生原因: 在以下情况下会发生 Log Forging 的漏洞: 1. 数据从一个不可信赖的数据源进入应用程序. 2. 数据写入到应用程序或系统日志文件中. 为了便于以后的审阅.统计数据收集或调试,应用程序通常使用日志文件来储存事件或事务的历史记录.根据应用程序自身的特性,审阅日志文件可在必要时手动执行,也可以自动执行,即利用工具自动挑选日志中的重要事件或带有某种倾向性的信息. 如…
继续对Fortify的漏洞进行总结,本篇主要针对 Privacy Violation(隐私泄露) 和 Null Dereference(空指针异常) 的漏洞进行总结,如下: 1.1.产生原因: Privacy Violation 会在以下情况下发生: 1. 用户私人信息进入了程序. 2. 数据被写到了一个外部介质,例如控制台.file system 或网络. 示例 1:以下代码包含了一个日志记录语句,该语句通过在日志文件中存储记录信息跟踪添加到数据库中的各条记录信息.在存储的其他数值中,getP…
继续对Fortify的漏洞进行总结,本篇主要针对  Dynamic Code Evaluation: Code Injection(动态脚本注入) 和 Password Management: Hardcoded Password(密码硬编码)  的漏洞进行总结,如下: 1.1.产生原因: 许多现代编程语言都允许动态解析源代码指令.这使得程序员可以执行基于用户输入的动态指令.当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出…
继续对Fortify的漏洞进行总结,本篇主要针对  Open Redirect(开放式重定向)  的漏洞进行总结,如下: 1.1.产生原因: 通过重定向,Web 应用程序能够引导用户访问同一应用程序内的不同网页或访问外部站点.应用程序利用重定向来帮助进行站点导航,有时还跟踪用户退出站点的方式.当 Web 应用程序将客户端重定向到攻击者可以控制的任意 URL 时,就会发生 Open redirect 漏洞. 攻击者可以利用 Open redirect 漏洞诱骗用户访问某个可信赖站点的 URL,并将…