oracle 模糊查询_解决XSS拦截后的数据库查询方案

相信很多搞J2EE开发的小伙伴们都有处理过XSS攻击,这种攻击常见的为JS脚本攻击,存在这种攻击,是因为我们太相信客户端传来的参数了,所以对任何客户端传来的参数都要进行XSS过滤,这种过滤的主要处理方法就是将参数通过转义保存到数据库中,也就是将'转义成"保存到数据库中,但是这又会引发另外一个问题,就是大家都知道&是oracle中的一个特殊字符,专门用来取参数的,当oracle检测到该参数时就会停止运行,等待用户输入参数,只不过你不输这个参数程序也不会报错,只是不会出结果,这就给模糊查询造成很大的麻烦。

所以这时就介绍一下这个解决办法,就是在模糊查询的时候利用正则表达式进行替换,将查询条件的转义字符替换成%,大家都知道%也是oracle中一个特殊字符,用来匹配任意个,当被替换以后,因为表示匹配任意个字符,所以模糊查询中的条件虽然被替换,但是也丝毫不影响查询,下面上正则表达式的替换代码。

1e891793920a9a55d3fa5960cbbe0f1a.png

正则表达式替换

为了防止sql注入,我们在使用Oracle模糊查询的时候常采用Oracle自带函数instr进行查询,这个函数在后面更新中会讲到,这个可以有力的避免sql注入,但使用这个函数就会在遇到&进行等待用户输入参数,所以可以使用上述方法进行替换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值