常见网站的两种攻击方式
内容:
1.跨站脚本攻击XSS
2.跨站请求伪造CSRF
一、跨站脚本攻击XSS
1.1 什么是XSS
跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。比如:有些人在留言板中输入恶意脚本来获取用户的帐号和密码。
1.2 XSS的危害
1.2.1 盗取种类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
1.2.2 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
1.2.3 盗窃企业重要的具有商业价值的资料
1.2.4 非法转账
1.2.5 强制发送电子邮件
1.2.6 控制受害者机器向其它网站发起攻击
1.3.如何防止
最常见的是对特殊字符如”<”,”>”进行转义,当然其它的手法防止手法,大家可以参考其它资料
二、跨站请求伪造CSRF
2.1 什么是CSRF
CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求。
2.2 CSRF原理
首先,你登录了银行网站A,然后访问危险网站B,噢,这时你会发现你的银行账户少了1000块……
为什么会这样呢?原因是银行网站A违反了HTTP规范,使用GET请求更新资源。在访问危险网站B的之前,你已经登录了银行网站A,而B中 的<img>以GET的方式请求第三方资源(这里的第三方就是指银行网站了,原本这是一个合法的请求,但这里被不法分子利用了),所以你的浏 览器会带上你的银行网站A的Cookie发出Get请求,去获取资源“http://www.mybank.com /Transfer.php?toBankId=11&money=1000”,结果银行网站服务器收到请求后,认为这是一个更新资源操作(转账 操作),所以就立刻进行转账操作……
CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的
示意图
2.3 如何防止CSRF攻击
2.3.1 Cookie Hashing(所有表单都包含同一个伪随机值):
2.3.2 验证码
2.3.3 One-Time Tokens(不同的表单包含一个不同的伪随机值)
2.3.4 WEB表单结构
2.3.5 服务端核对令牌
参考资料:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的