zoukankan      html  css  js  c++  java
  • SQL注入与Java

    前面这篇文章介绍了SQL注入,并且主要就PHP的内容做了实验:

    http://www.cnblogs.com/charlesblc/p/5987951.html

    还有这篇文章对处理方案做了介绍(PreparedStatement in PDO or mysqli)

    http://www.cnblogs.com/charlesblc/p/5988919.html

    那么对于Java是怎样的情况呢?

    首先,尽量避免sql拼接,并且参数加引号。使用正则过滤,前端过滤。使用字符串转换,转义处理。

    最终,尽量采用预编译语句集 PreparedStatement。

    分析得出,PreparedStatement相比Statement基本解决了SQL注入问题,而且效率也有一定提升。

    PreparedStatement对参数都做了转义,不允许引号的直接传递;

    不允许传参过程中改变sql的逻辑结构,不允许在不同的插入时间改变查询的逻辑结构;

    使用PreparedStatement提供的传参接口setXXX,在类型有误时会直接报错。

    基本SQL注入就被过滤了(用基本,是因为现在也预测不到后面攻击技术是否有突破或者新的漏洞发现)。

    另外,WEB层我们可以过滤用户的输入来防止SQL注入比如用Filter来过滤全局的表单参数。

    Java连接数据库基本使用Mybatis(之前也用Hibernate)。裸JDBC调用,基本很少用了。所以就不实验了。

  • 相关阅读:
    token认证、JWT
    DRF序列化、认证、跨域问题
    JS 作用域 p1
    如何配置图标
    关于批量更新与删除
    windows 公司内部搭建禅道(项目管控)
    JS 创建自定义对象的方式方法
    apicloud 消息推送与接收
    apicloud 自定义模块的开发与上架注意事项
    apicloud 第一篇
  • 原文地址:https://www.cnblogs.com/charlesblc/p/5989864.html
Copyright © 2011-2022 走看看