校验跨信任边界传递的不可信数据(策略检查数据合法性,含白名单机制等)

格式化字符串时,依然要检验用户输入的合法性,避免可造成系统信息泄露或者拒绝服务

禁止向Java Runt ime. exec ()方法传递不可信、未净化的数据(当参数中包含空格,双引号,以-或者/符号开头

表示一个参数开关时,可能会导致参数注入漏洞),建议如果可以禁止JVM执行外部命令,未知漏洞的危害性会

大大降低,可以大大提高JVM的安全性。

验证路径之前应该先将其标准化为实际路径(特殊的文件名,比如“..”,symbolic links、 hard links、

shortcuts )

从ZipInputStream提取文件,如果不在程序预期计划的目录之内时,应拒绝将其提取出来,或者将其提取到一个

安全的位置

从ZipInputStream提取文件, 若解压之后的文件大小超过- -定的限制时,必须拒绝将其解压

在处理以前,验证所有来自客户端的数据,包括:所有参数、URL、HTTP头信息(比如: cookie名字和数据

值),确定包括了来自JavaScript、 Flash或其他嵌入代码的post返回信息

如果任何潜在的危险字符必须被作为输入,请确保您执行了额外的安全控制,比如:输入转义、输出编码、特定

的安全API等。部分常见的危险字符,包含但不限于: <>”"’%()&+\’\”

如果您使用的标准验证规则无法验证下面的输入,那么它们需要被单独验证,比如验证空字节(%00); 验证换

行符(%Od, %0a, \r, \n);

验证路径替代字符“点-点-斜杠”(../或 ..\) ;如果支持UTF-8扩展字符集

编码,

验证替代字符: %c0%ae%c0%ae/ (使用规范化验证双编码或其他类型的编码)

严格验证来自重定向输入的数据(一个攻击者可能向重定向的目标直接提交恶意代码,从而避开应用程序逻辑以

及在重定向前执行的任何验证)

验证数据类型

验证数据范围

验证数据长度


java 应用ELK_java 应用ELK

输入校验