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

  • 相关阅读:
    病毒软件测试代码
    如何将WIN安全设置重置回默认值
    今天值班非常不爽。
    FTP命令(2)
    WORD操作
    DELPHI事务
    DELPHI一些常用的技巧
    钩子学习心得
    (转 )Delphi指针如何指向使用with开域语句创建的无名组件对象
    WebBrowser 操作记要 (DELPHI)
  • 原文地址:https://www.cnblogs.com/charlesblc/p/5989864.html
Copyright © 2011-2022 走看看