头一低,很多年都这样过去了...

欢迎来到Kittow的部落格! - http://blog.skyhe.com

Agile Web Development (敏捷Web开发)

Want to Know Something More? Move Your Mouse Here;)

我是天空的一片云,偶尔投影在你的波心,你记得也好,最好你忘掉,你我在交汇时,互放的光亮。
——徐志摩《偶然》 More...

我的VOA听写积分

2006-6-6 [返回]
[原创]Web应用系统中的安全问题总结
作者:kittow 日期:2006-06-01
BLOG:http://blog.skyhe.com
(本文遵守“创作共用”协议,转载请注明作者和原文地址)

一、各种攻击方式
二、解决方案
三、安全关键点

一、各种攻击方式
(一) XSS/CSS (Cross Site Script) - 跨站脚本攻击
    用户提交的变量没有经过完整过滤Html字符或者根本就没有经过过滤就放到了数据库中,并且在一些地方又直接从数据库中取出来返回给来访问的用户,这就导致了跨站脚本漏洞的产生。因为一个恶意用户提交的Html代码最终被其他浏览该网站的用户访问,通过这些Html代码也就间接控制了浏览者的浏览器,就可以做很多的事情了如窃取敏感信息,引导访问者的浏览器去访问恶意网站等,这样就是导致了跨站脚本漏洞的产生。
    并非任何可利用脚本插入实现攻击的漏洞都被称为xss,还有另一种攻击方式:"script injection",他们的区别在以下两点:
1.(script injection)脚本注入攻击会把我们插入的脚本保存在被修改的远程web页面里,如:sql injection,xpath injection.
2.跨站脚本是临时的,执行后就消失了
    跨站脚本攻击又可以分为以下几种方式:
(1)Normal Input
(2)Cookies
(3)Hidden Field
(4)重放攻击


(二) SQL Injection - SQL注入攻击
    基本上不用多说,很多朋友都注意到的漏洞,简单的举例:
前台URL:xxxx/page?id=1
后台语句:selec * from table1 where id={id}
前台测试注入:xxxx/page?id=1 or 1=1 (如果不报错,就有漏洞)
SQL注入代码:selec * from table1 where id=1 or 1=1 ;delet from...;--
(分号“;”代表一句SQL语句结束,一次可以执行多条语句,“--”注释掉后面的sql代码,保证注入语句可以正常执行)

(三) 规范化问题
由于程序员规范化代码、编程习惯而造成的安全漏洞
例如:把log.txt放在根目录,admin做管理目录,login.asp做登陆页面...

(四) 预知攻击
1、Information Leakage Problem
2、Path Predicted
3、Parameter Predicted

(五) MapPath

(六) Over Run - 溢出攻击


二、解决方案:
页面级安全、代码级安全
永远不要相信用户输入

三、安全的关键点:
技术、人、过程


待续...
本文写作前参考了微软MVP的安全讲座和部分网络资料,表示感谢!


附录:
SQL注入技术和跨站脚本攻击的检测
http://blog.blackwoods.cn/read.php?446
《都是脚本惹得祸——跨站攻击》发表于家用电脑2006年第17期
http://www.pete.cn/article.asp?id=205
跨站脚本攻击的防御
http://www.zjtmd.net/show.php?id=710


转自:天河网 | www.skyhe.com

Posted at 3:15 PM | Comments[0]

转自:天河网 | www.skyhe.com

发表评论
We Used Ajax to Post Your Comment!
本站评论系统采用Ajax技术,无刷新发送评论
您的大名 *   
电子邮件  
5+6=? *(请输入“5+6=?”的结果)
评论内容 *