WEB 应用数据验证指南
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

1 .为什么要验证数据?

如果不验证数据,容易导致WEB应用出现多种漏洞,比如:SQL注入***,命令注入***,跨站点脚本***,编码***,文件系统***和缓冲区溢出。因此,为了保护WEB应用的安全,我们必须验证数据。
2 .什么地方需要验证数据?

 所有从用户或其它设备接受数据的代码部分。
3 .什么数据需要验证?

HTTP头部,cookies,session,查询字符串,表格字段,和隐藏字段等。
4 .怎样验证数据?

4.1 验证策略

按顺序选择使用下面的四种策略:
n  接受正确的数据:如果知道某个数据的所有特点,就可以只接受具有所有这些 特点的数据。比如对手机号码的验证就可以使用本方法。
n  拒绝错误的数据:如果知道具有某些特点的数据是错误的,就可以明确拒绝具 有这些特点的数据。
n  规范化数据:对数据进行分析,去掉有问题的部分,并进行适当的修改和 转换,从而将其转化为正确的数据。
n  不作验证数据:  万不得已才不验证数据。
4.2 验证方法

n  检查数据类型;
n  检查字符型数据的长度范围;
n  检查数值型数据的大小范围;
n  验证数据来源进行, 防止跨站***也可以在APACHE配置文件里面做);
n  过滤掉下面的特殊字符或为其编码:
Character

Encoding

<

&lt;   or &#60;

>

&gt;   or &#62;

&

&amp;  or &#38;

"

&quot; or &#34;

'

&#39;

(

&#40;

)

&#41;

#

&#35;

%

&#37;

 ;

&#59;

+

&#43;

-

&#45;

 

n  尽可能使用存储过程操作后台数据库;
n  在生成SQL语句的地方:
Ø  过滤掉输入变量中的双引号和单引号;
Ø  过滤常用sql 关键字;
Ø  对于数值型字段变量,验证其值确实是数字;
n  适当使用图片验证;
n  验证数据操作的权限;