关于XSS 攻击的解决办法!

快到国庆了而且今年又是60周年,各个政府网站也都开始对网站的安全、漏洞进行大规模的扫描,很不幸我们公司开发的一个政府网站被扫描出来存在SQL注入、XSS、CSRF等漏洞!网站是几年前采用PHP开发的,由于开发人员本身的安全意识不足,代码编写上不严谨,滥用$_REQUEST类变量等导致网站存在了很多的安全隐患。最近一直都在研究XSS攻击如何防范,由于研究的时间不长简单的总结了下防御办法。
如下表单
<form name="testform" method="post" action="news/comment.php">
<input type="text" name="userName">
<input type="hidden" name="test1" />
<input type="hidden" name="test2" />
</form>

如果在用户在输入用户时录入的数据为" /><script src=xxx></script>这样就会插入了恶意的脚本
[b]解决办法[/b]:
1、对用户录入的数据进行类型和长度的验证,其它的包括对URL、查询关键字、HTTP头、get、post也需要进行可靠的输入验证,这样可以抵挡部分恶意的脚本,但是不能完全防住。
2、尽量采用POST方式而非GET方式提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode。对于Cookie 尽量避免直接泄露用户隐私,可以用cookie结合其它一些系统或用户信息来降低泄露后的危险。
3、这里要注意一下如果注入代码如<img src="javascript:alert('XSS')">这种需要把关键字去除如 src href 这些连接性的 发现没有带协议头的就需要帮助补充。而style 则需要重点处理 /**/ expression url,尽可能禁止style属性,将所有的样式都定义到CSS中。
4、尽量减少在客户端进行写document等敏感操作,重点关注以下方法
document.URL
document.URLUnencoded
document.location ()
document.referrer
window.location ()
document.create...()等
逐层进行过滤客户端、服务器端、数据库访问层,每一层都进行下数据的过滤尽量将危险控制在最低。
以上是对XSS攻击的一个简单总结,希望大家能够再多多补充。附一张扫描结果!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值