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调用,基本很少用了。所以就不实验了。

  • 相关阅读:
    yii2增删改查及AR的理解
    yii2中关联查询
    yii2常用的migrate命令
    有线电视网
    选课
    没有上司的舞会
    [ZJOI2008]骑士
    【模板】树链剖分
    [ZJOI2008]树的统计
    [NOI2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/charlesblc/p/5989864.html
Copyright © 2011-2022 走看看