《Java安全编码标准》一2.10 IDS09-J如果没有指定适当的locale,不要使用locale相关方法处理与locale相关的数据
2.10 IDS09-J如果没有指定适当的locale,不要使用locale相关方法处理与locale相关的数据 当locale没有明确指定的时候,使用locale相关的方法处理与locale相关的数据会产生意想不到的后果。编程语言的标示符、协议关键字以及HTML标签通常会指定Locale.ENGLISH作为一个特定的locale。当改变默认的locale的时候,很有可能使数据绕过检查,从而改变....
《Java安全编码标准》一2.9 IDS08-J净化传递给正则表达式的非受信数据
2.9 IDS08-J净化传递给正则表达式的非受信数据 正则表达式在匹配文本字符串时被广泛使用。比如,在POSIX中,grep命令就支持正则表达式,使用它可以在指定文本中搜索模式。如果要了解正则表达式的基本情况,请参考Java教程[Tutorials 08]。java.util.regex包提供了Pattern?类,这个类封装了一个编译过的正则表达式和一个Matcher类,通过Matcher类这....
《Java安全编码标准》一2.8 IDS07-J不要向Runtime.exec()?方法传递非受信、未净化的数据
2.8 IDS07-J不要向Runtime.exec()?方法传递非受信、未净化的数据 外部程序通常被系统调用来完成某种需要的功能。这是一种重用的形式,也被认为是一种简单基于组件的软件工程方法。在应用没有净化非受信的输入并且在执行外部程序时使用这种数据,就会导致产生命令和参数注入漏洞。每一个Java应用都有一个唯一的Runtime类的实例,通过它可以提供一个应用和应用运行环境的接口。当前的Run....
《Java安全编码标准》一2.7 IDS06-J从格式字符串中排除用户输入
2.7 IDS06-J从格式字符串中排除用户输入 对Java格式字符串的解释要比对在像C语言这样的语言中更严格[Seacord 2005]。当任何转换参数不能匹配相应的格式符时,标准类库实现会抛出一个相应的异常。这种方法降低了被恶意利用的可能性。然而,恶意用户输入可以利用格式字符串,并且造成信息泄露或者拒绝服务。因此,不能在格式字符串中使用非受信来源的字符串。 2.7.1 不符合规则的代码示例 ....
《Java安全编码标准》一2.6 IDS05-J使用ASCII字符集的子集作为文件名和路径名
2.6 IDS05-J使用ASCII字符集的子集作为文件名和路径名 如果文件名和路径名中包含了特殊字符,就会有问题,并且它会引起不可预期的系统行为,从而导致安全漏洞。在构建文件名或者路径名的时候,下面的字符和模式是有问题的。以破折号开头:当调用一个程序时,使用的是它的文件名,若文件名以破折号开头,那么会导致问题,因为这样的文件名的第一个字符会被解析为选项标志。控制字符,例如换行符、回车与Esc:....
《Java安全编码标准》一2.5 IDS04-J限制传递给ZipInputStream的文件大小
2.5 IDS04-J限制传递给ZipInputStream的文件大小 通过对java.util.ZipInputStream的输入进行检查,可以防止消耗过多的系统资源。当资源使用大大多于输入数据所使用的资源的时候,就会出现拒绝服务问题。当需要解压一个小文件,比如zip、gif或者gzip编码的HTTP内容,会消耗过多的资源时,并且在压缩率极高的情况下,Zip算法的实现本身就会导致zip炸弹(z....
《Java安全编码标准》一2.4 IDS03-J不要记录未经净化的用户输入
2.4 IDS03-J不要记录未经净化的用户输入 当日志条目包含未经净化的用户输入时会引发记录注入漏洞。恶意用户会插入伪造的日志数据,从而让系统管理员以为是系统行为 [OWASP 2008]。例如,用户在将冗长的日志记录拆分成两份时,日志中使用的回车和换行符可能会被误解。记录注入攻击可以通过对任何非受信的发送到日志的输入进行净化和验证来阻止。将未经净化的用户输入写入日志同样会导致向受信边界之外泄....
《Java安全编码标准》一2.3 IDS02-J在验证之前标准化路径名
2.3 IDS02-J在验证之前标准化路径名 根据Java API[API 2006]文档对java.io.File类的描述:一个路径名,不管是抽象的还是字符串形式的,可以是相对路径也可以是绝对路径。使用绝对路径名,因为在定位一个路径表示的文件时,已经不需要其他信息了,因而可以认为是完整的。相比之下,一个相对路径名必须要增加其他的路径信息才能进行解释。绝对路径名或者相对路径名会包含文件链接,比如....
《Java安全编码标准》一2.2 IDS01-J验证前标准化字符串
2.2 IDS01-J验证前标准化字符串 许多应用能够接收非受信的输入字符串,但需要对基于字符串的字符数据进行过滤和验证处理。例如,为了避免跨站脚本(Cross-Site Scripting, XSS)的安全漏洞问题,某些应用会采用在输入中禁止<script>标签的策略。这种黑名单式的机制是一种有效的安全策略,尽管它们对于输入验证和净化来说是不够的。这种方式的验证必须并且只能在对输入....
《Java安全编码标准》一2.1 IDS00-J净化穿越受信边界的非受信数据
2.1 IDS00-J净化穿越受信边界的非受信数据 许多程序会接受来自未经验证的用户数据、网络连接,以及其他来自于非受信域的不可信数据,然后它们会将这些数据(经过修改或不经修改)穿过受信边界送到另一个受信域中。通常,这些数据是以字符串的形式出现的,并且它们会有既定的内部数据结构,这种数据结构必须能够被子系统所解析。同时,必须净化这些数据,因为子系统可能并不具备处理恶意输入信息的能力,这些未经净化....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Java开发者
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
+关注