【安全】问题——防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>包含<,根本不能写入数据库,也就避免了这种问题。

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值