WEB应用数据验证指南

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   验证数据操作的权限;

转自 : http://zoukejian.blog.51cto.com/131276/57886
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值