【web安全】- xss注入攻击的总结

编	写:袁亮
时	间:2014-10-10
功	能:xss攻击的总结文档

一、xss注入攻击危害
	1、cookie、session等劫持,任意登陆其他用户、管理员的账号,从而做一些非法操作,比如登陆后台操作等等
	2、挂马、流量劫持,将正常访问我们站点的流量导到他们的网站,从而实现谋利等
	3、记录用户的键盘输入,从而实现盗取账号密码等
	4、弹出广告,篡改页面,引导用户输入账号密码等
	5、用管理员权限,进行提权,比如上传一些webshell,进一步来提权控制服务器等
	6、使用劫持的流量进行攻击等操作

二、防御措施
	1、cookie设置的时候,设置为http only,除非没办法一定要给js读取,否则都设置为http only
	2、外部参数都要过滤:get、post、cookie
	3、数字型参数,一律使用intval转型
	4、字符串:纯文字,不允许html、js等效果的,使用strip_tags过滤,绝大多数都可以防止
		4.1 非编辑器的内容输入,基本上都可以采用该策略
		4.2 编辑器的内容,产品允许的情况下,也可以这么用,指定strip_tags的第二个参数,只允许部分标签
	5、字符串:允许html,但不允许脚本执行(编辑器内容)
		5.1 完全避免是不可能的
		5.2 针对一般性的注入进行防范,参考附件中的removeXss函数,还是会被绕过
		5.3 去除了一些危险标签,以及几乎所有的js事件,可能会存在误判,可根据各项目情况,自行修改过滤标签数组
		5.4 一般只针对富文本编辑器产生的内容处理,其他的采用上面的方法处理
	6、采用html purifier来过滤所有的xss攻击(成本较高,特别重要的项目的部分输入才引入)
		6.1 只看了大概介绍,没有具体研究,有兴趣的可以试下

	总结:数字型支架intval,非编辑器产生的字符串基本都可以用strip_tags过滤,编辑器的可采用removeXss进行过滤。

三、其他工具
	1、web自动扫描工具(360漏洞扫描)
	2、360webscan.php(自动拦截记录get、post、cookie中的非法请求,会上传报告,记得关掉,易误伤)
	3、XSSer
	4、app检测:http://service.security.tencent.com/kingkong

四、通用后台登陆验证升级:
	1、产生的登陆cookie设置为http only,防止因为其他站点的xss工具导致cookie被劫持
	2、验证生成的秘钥与验证时候的ip与agent绑定,防止非法使用
	3、登陆产生的秘钥存储在session中,过期失效