web脚本程序攻击的防范(2)

作者:lanker 来源:cnwill.com 时间:2007-10-18 13:29:00 

要说COOKIES是容易忽略的地方,User-Agent 注入会另你意想不到,在HTTP1.1规范就定义了一个“User-Agent”头标,我们抓个包看看:


GET /bbsxp/images/skins/1/T_bg.gif HTTP/1.1 
Accept: */* 
Referer: http://localhost/bbsxp/Default.asp 
Accept-Language: zh-cn 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) 
Host: localhost 
Connection: Keep-Alive 
Cookie: eremite=0; member_id=1; pass_hash=5140c3b61780e904b05d44f8d3193564; skins=1; ASPSESSIONIDQADBTQQA=AGIPJKACPGNICLMHAFEOBHKA; username=lanker; userpass=E10ADC3949BA59ABBE56E057F20F883E; onlinetime=2003%2D7%2D9+22%3A20%3A13; addmin=10 


“User-Agent”用来鉴别浏览器。你在这个字符串中经常可以看到“Mozilla”的一些表单。应用程序使用“User-Agent”字符串来适应浏览器的特殊性,可以允许你指定特殊的字符串这就给我们注射的机会。动网的 User-Agent 注入是最好的说明和实例了。不明白的朋友可以看看 “动网论坛DVBBS漏洞及入侵一则”和“深入分析DVBBS7 User-Agent注入”这两篇文章。这可能就属于他们所说的包注入了。

然而对与一些纯数字的过滤最好莫过于用脚本语言的本身函数:

比如 asp 脚本可以用 cint,clong,isNumeric 这样的过滤可以说是最严格的一种了。PHP脚本里可以用intval 这样的函数。

对于不能过滤“<”和“>”情况下跨站的脚本的防范手段是,将所有的尖扩号都转化成对应的HTML编码。对于“<”表示成“&lt” 对与“>” 表示成“&gt” 需要特别注意的是对于上面所有的输入过滤都要在服务端进行,客户端的所有验证都会等于徒劳无用,可以很轻松的绕过。

好了上面的已经过滤的差不多了,是不是现在就万事大吉了呢?答案是否定的,对于一些数字字段还有许多潜在的错误使用方法。即使我们限制了数据必须是数字的值,还是会引起一些错误,所以我们下面要做的是边界的检查,你不要小视边界检查哦,某些时候他会暴出你的绝对路径来地。
一般需要我们注意检查的有:布尔值,数字,和字符串的长度。

最后一个编写程序中注意的就是要有恰当的错误捕捉机制,无论采用什么样的语言编写程序,都应该有象C#,JAVA中的Try,Catch机智来捕获出错信息。对于程序遇到异常错误时能够正常终止运行。在出错的提示页中应该尽量不要包含系统的信息。

总结:上面是我个人在学习中总结的一些经验,希望能对编程人员编写安全健壮的代码有一定把帮助,如有错误的地方还请指教。

标签:攻击,脚本,漏洞
0
投稿

猜你喜欢

  • 与 Function 和 Object 相关的有趣代码

    2010-05-07 12:29:00
  • SQL Server中两种修改对象所有者的方法

    2009-01-15 13:10:00
  • MySQL配置文件my.cnf中文版

    2011-09-30 11:06:15
  • MSSQL存储过程解秘过程全析

    2010-07-05 08:49:00
  • ASP 读取MP3文件帧的信息比特率,采样频率,播放时间

    2010-06-04 12:22:00
  • js“树”读取xml数据源码

    2007-08-04 19:42:00
  • LZ77 算法的JS实现

    2010-04-11 22:32:00
  • asp如何在网上查找链接?

    2010-06-22 21:10:00
  • 如何防止Application对象在多线程访问中出现错误?

    2009-11-22 19:18:00
  • CSS网页布局扩展小技巧

    2010-06-03 12:13:00
  • 教程javascript的function(函数)

    2007-09-30 13:38:00
  • javascript封装的下拉导航菜单渐显效果

    2007-08-04 20:11:00
  • 三大原因:按照新HTML标准设计网页好处

    2008-11-12 11:23:00
  • ASP程序中使用断开的数据记录集的代码

    2012-12-04 20:20:28
  • 网页中的平衡、对比、连贯和留白

    2008-11-24 12:11:00
  • mysql rand(x)生产重复随机序列

    2010-12-03 16:01:00
  • Recipe: 把SQL数据库部署到远程主机环境(第一部分)

    2007-09-23 13:07:00
  • HTML5设计原则

    2012-04-26 16:46:45
  • SQL语句练习实例之七 剔除不需要的记录行

    2011-11-03 16:50:51
  • AES算法 asp源码

    2009-08-28 13:05:00
  • asp之家 网络编程 m.aspxhome.com