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 <
>
&gt;   or >
&
&amp;  or &
"
&quot; or "
'
'
(
(
)
)
#
#
%
%
 ;
;
+
+
-
-
n 尽可能使用存储过程操作后台数据库;
n 在生成SQL语句的地方:
Ø 过滤掉输入变量中的双引号和单引号;
Ø 过滤常用sql 关键字;
Ø 对于数值型字段变量,验证其值确实是数字;
n 适当使用图片验证;
n 验证数据操作的权限;
本文转自zkjian517 51CTO博客,原文链接:http://blog.51cto.com/zoukejian/57966

WEB应用数据验证指南相关推荐

  1. java web 数据验证_kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件...

    小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...

  2. System.Web.HttpException: 无法验证数据解决办法

    无法验证数据. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web.HttpExcep ...

  3. AngularJS快速入门指南14:数据验证

    AngularJS表单和控件可以对用户输入的数据进行验证. 输入验证 在之前的章节中你已经了解了有关AngularJS表单和控件的相关内容. AngularJS表单和控件可以提供数据验证服务,并对不合 ...

  4. Web流程图的绘画指南

    转载自雷锋网  http://www.leiphone.com/flowcharts-web-design.html Web流程图的绘画指南 小盒   2012-08-30 16:00   1条评论  ...

  5. Silverlight实例教程 - Validation数据验证开篇

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  6. Win2008 R2 WEB 服务器安全设置指南之修改3389端口与更新补丁

    这篇文章主要介绍了Win2008 R2 WEB 服务器安全设置指南之修改3389端口与更新补丁,需要的朋友可以参考下 3389端口是指windows系统中的远程桌面端口,可以使用它本管理远程计算机,就 ...

  7. flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识...

    flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识 flask中的CBV写法 后端代码 # 导入vie ...

  8. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  9. 基于ajax的数据验证

    实现代码: aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

最新文章

  1. Yolov5 face训练手册
  2. Pycharm 在Ubuntu图形界面中创建桌面图标
  3. Java SE Eclipse中引入第三方jar及class
  4. python发送json数据_在Websockets上发送JSON
  5. 设计法则 - 菲茨定律 (转)
  6. oracle 异常返回值,oracle - java.sql.SQLException:无效的列类型:调用具有行类型返回值的函数时为1111 - 堆栈内存溢出...
  7. docker 设置国内镜像源(网易、ustc、中国科技大学、阿里云容器)
  8. linux下打开Mongodb命令行窗口,Linux系统下MongoDB的安装与基本操作
  9. FileUtils类 使用举例
  10. java swing窗口放置屏幕中央问题思考
  11. python yield理解_python教程:迭代器,生成器与for循环机制
  12. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据设置数据窗口的更新属性...
  13. 2014版C 语言程序设计基础,清华大学出版社-图书详情-《C/C++程序设计基础与实践教程》...
  14. 概率学习总结笔记(扑克概率)
  15. AutoCAD 系统变量
  16. 搭建内网yum源镜像仓库
  17. 常见对话框之一AlertDialog
  18. HUAWEI WeAutomate RPA初级教程之PPT自动化
  19. 特斯拉与Uber达成协议,为Uber伦敦司机提供电动汽车
  20. ThreadPoolExecutor详解及线程池优化

热门文章

  1. MySQL-WorkBench修改MySQL配置注意事项
  2. html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
  3. 自行编译Vim for Windows,加入Python支持!
  4. float对div宽度的影响
  5. nagios全攻略(三)----使用插件监控更多信息
  6. CSDN Blog V3.0 升级公告
  7. 不一样的Gradle多渠道配置总结
  8. 笔记JavaScript基本概念
  9. 用 PHPMailer 发送邮件
  10. SFB 项目经验-12-为某上市企业的Skype for Business购买Godday证书