欢迎来到Kittow的部落格! - http://blog.skyhe.com
Agile Web Development (敏捷Web开发)
Want to Know Something More? Move Your Mouse Here;)我是天空的一片云,偶尔投影在你的波心,你记得也好,最好你忘掉,你我在交汇时,互放的光亮。
——徐志摩《偶然》 More...
ASP | ASP.NET | PHP |
ColdFusion | Perl | Python |
我是天空的一片云,偶尔投影在你的波心,你记得也好,最好你忘掉,你我在交汇时,互放的光亮。
——徐志摩《偶然》 More...
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