JDBCtemplate防范Sql注入攻击

作者: 0xCoffee | 来源:发表于2017-05-24 22:55 被阅读322次

SQL 注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
在使用JAVA ORM时基本不用担心防范SQL injection,而在使用JDBCtemplate时,由于用到了sql命令,所以可能会注意对Sql注入得防范。
下面以sql语句
select * from table_name where id = 1 OR 1=1
为例进行分析。

Demo1

  @RequestMapping(method = RequestMethod.GET)
    public @ResponseBody
    List<Customer> getCustomerByid(@RequestParam String id) {
        return jdbcTemplate.query(
                "SELECT * FROM customers WHERE ?",
                new CustomerMapper(),id);
    }

在postman中进行实验

可以看到JDBCtemplate对参数化sql查询进行了验证,从而防范了sql注入。

Demo2

@RequestMapping(method = RequestMethod.GET)
    public @ResponseBody
    List<Customer> getCustomerByid(@RequestParam String id) {
        String sql = "SELECT * FROM customers WHERE +id";
        return jdbcTemplate.query(sql, new CustomerMapper());
    }

在postman中进行实验


Paste_Image.png

在这种直接拼接sql语句的情况下,发生了sql入侵。

总结

JDBCtemplate中对参数化的sql查询有着良好的验证机制,因此建议使用参数化SQL的方式。

相关文章

  • JDBCtemplate防范Sql注入攻击

    SQL 注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的...

  • 面试官问你 SQL 注入攻击了吗?

    为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 ...

  • Django 常见Web攻击

    1、sql注入攻击与防范 sql注入是黑客攻击数据库最常用的手段。sql注入的危害: 非法读取、篡改、删除数据库中...

  • SQL注入实战篇

    今天要介绍的是SQL注入实验。SQL注入攻击的学习,我们更多的目的是为了学习攻击技术和防范策略,而不是刻意去攻击数...

  • Java安全编程指南

    SQL注入防范 SQL注入指利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的攻击方法。Java程...

  • java编程学习笔记——mybatis SQL注入问题

    SQL 注入攻击 首先了解下概念,什么叫SQL 注入: SQL注入攻击,简称SQL攻击或注入攻击,是发生于应用程序...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • SQL注入攻击的防范

    一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

  • PHP代码安全之SQL注入

    PHP代码安全之SQL注入 1、什么是SQL注入? SQL攻击(英语:SQL injection),简称注入攻击,...

网友评论

    本文标题:JDBCtemplate防范Sql注入攻击

    本文链接:https://www.haomeiwen.com/subject/pqlxxxtx.html