Cike9588 2019-01-18 11:24 采纳率: 100%
浏览 1727
已采纳

appscan扫描出sql注入

最近项目进行安全测试,用appscan扫描出sql注入,发现在参数后拼入%uFF07这类字符后,过滤器request.getParameterNames()就会有异常(但是捕获不到这个异常),并且自动把带%uFF07的参数key和value自动忽略,也就检测不到有sql注入了,,,这样有个解决方法是可以在过滤器中用request.getInputStream()来获取IO流,即可检测到%,,,但是又有一个问题:getParameterNames()和getInputStream()又不能共存使用,在过滤器中若用getInputStream(),则项目其他地方request.getParameter就会有问题,所以谁有好的办法呢???
图片说明
就是图片中这样,过滤器request.getParameterName()就获取不到"value"属性和对应的值

  • 写回答

3条回答 默认 最新

  • 舍文 2019-01-18 13:59
    关注

    先问几个问题,你这个是POST方法嘛?后端用到了什么框架没有?比如springmvc

    通过跟踪tomcat的日志,应该是在调用org.apache.tomcat.util.http.Parameters的processParameters方法时出现了异常。

    以下是tomcat的日志:

    org.apache.tomcat.util.http.Parameters processParameters
    信息: Character decoding failed. Parameter [value] with value [1234%uFF07] has been ignored. Note that the name and value quoted here may be corrupted due to the failed decoding. Use debug level logging to see the original, non-corrupted values.

    1.如果缺失了value的值,这句sql执行的时候返回了500,应该在执行数据库操作之前对参数进行校验。具体的校验方法,你可以看看下面的文章。
    https://jinnianshilongnian.iteye.com/blog/1733708

    1. 至于防止sql注入攻击,不能采用拼接sql的方式来编写sql.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况