【安全】问题——防XSS防SQL注入式攻击的一些理解

防XSS防SQL注入式攻击的一些理解

问题产生

昨天正开开心心地码代码,被大佬同事拉去搞修复漏洞,说是我运维的项目出现严重的SQL注入攻击和跨站漏洞。

一开始我是一脸懵逼的,因为之前码代码根本没接触过漏洞这块,编程的时候也没有防止漏洞产生的思想。怀着忐忑的心情就过去了。

到了之后大佬同事给我一份文档,告诉我项目中有个链接被检测出有SQL注入风险的漏洞。

可能的原因

链接访问采用的是get方式,将其中一个参数写到了链接里面,可能在写防XSS的过滤条件时少了某些字符,所以才会检测出漏洞。因为一开始不知道什么是XSS,询问过大佬,get到了几个点:1.防止XSS攻击的方式是个过滤器 2.过滤条件少了字符导致漏洞。

解决过程

那么就去web.xml里面找找filter配置吧,这倒不难,找到之后再去找相关的类,看是不是少写过滤条件了。果然,在过滤条件中有很多,但是也有一些没有写上去,比如   “  , ”  ,:等,按照检测的例子,将一些特殊的条件添加上去,大功告成。

总结

问题是解决了,但是我对这个漏洞的产生以及危害还是一知半解。SQL注入攻击是什么?工作机制是怎样的?危害有那些?不懂就要去问,然后就去和大佬交流。大佬拿我处理的漏洞举了个例子:

假如有个链接http:www.xxxxx.com?userID=xxxx,如果你不用XSS过滤器进行过滤的话,如果有人用userID=<a href = "www.aaaaaa.com"></a>(即一个网址超链接)请求之后,直接保存在数据库中,当查询的时候,返回的也是这个userID==<a href = "www.aaaaaa.com"></a>,那么前端就解析出一个超链接进行跳转新网站(钓鱼网站),用户不知道时就会发生用户信息泄露。如果写了对 < 的过滤条件,那么在写数据库的时候<a href = "www.aaaaaa.com"></a>包含<,根本不能写入数据库,也就避免了这种问题。

另,记一个小技巧,有些英文  "  ,: 可转换成中文  “  ,:,存入数据库,之后就算存入数据库,返回的时候因为有中文字符,前端解析会把整个东西解析成字符串。

一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。 二、XSS漏洞的危害 (1)网络钓鱼,包括盗取各类用户账号; (2)窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作; (3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等; (4)强制弹出广告页面、刷流量等; (5)网页挂马; (6)进行恶意操作,例如任意篡改页面信息、删除文章等; (7)进行大量的客户端攻击,如DDoS攻击; (8)获取客户端信息,例如用户的浏览历史、真实IP、开放端口等; (9)控制受害者机器向其他网站发起攻击; (10)结合其他漏洞,如CSRF漏洞,实施进一步作恶; (11)提升用户权限,包括进一步渗透网站; (12)传播跨站脚本蠕虫等; 三、过滤器配置 web.xml配置 XssFilter com.xxx.Filter.XssFilter XssFilter /*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值