SQL注入及其防范

作者: 关耳金名 | 来源:发表于2017-05-07 20:57 被阅读0次

1.什么是SQL注入

在java中无论是使用orm框架还是直接使用JDBC操作数据库我们经常都会碰到拼接字符串的情况,例如以下:

String sql = "select * from tableA where username = " + username + ";";

那么操作输入的字符串username来修改我们的操作数据库语句例如

username = "zhengming; drop table tableB";

那么执行本条语句后tableB表将会被删除,这就是我们常说的SQL注入攻击

2.如何防范

说完了什么是SQL攻击后那么久要说说如何进行防范,主要的防范方法有以下几种:

  • 严格区分普通用户权限与管理用户权限
  • 使用参数化语句(即使用占位符)
  • 加强对用户输入内容的验证
  • 使用专业的软件对SQL漏洞进行扫描

以下将对前三种防范措施进行说明

严格区分普通用户权限与管理员权限

对于普通用户即应用使用者一般只给予读取权限和部分写权限,至于删除表和删除数据库这样的权限应当予以限制,而对于数据库管理员来说就应当给予更高的权限以便维护数据库

使用参数化语句

无论使用orm框架还是直接使用JDBC操作数据库,只要稍微了解应该都知道占位符的用处即代表此处为一个参数,通过后期设置的方式进行填充

String sql = "select * from tableA where username = ?;"

而后通过set方法进行设置参数

加强对用户输入的验证

其实简单来说就是去验证用户输入的内容是否正确,拒绝包含二进制数据、转义序列和注释字符的输入内容,验证输入内容,只接受需要的内容和需要内数据类型,这样可以有效的防止注入攻击

以上
欢迎关注我的知乎:郑铭
github:github

相关文章

  • SQL注入及其防范

    1.什么是SQL注入 在java中无论是使用orm框架还是直接使用JDBC操作数据库我们经常都会碰到拼接字符串的情...

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

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

  • Java安全编程指南

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

  • Django 常见Web攻击

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

  • java安全编码指南之:输入注入injection

    简介 注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。 SQL注入...

  • 谈谈sql注入之防范(四)

    了解了SQL注入的方法后,如何能防止SQL注入?如何进一步防范SQL注入的泛滥?怎么通过一些合理的操作和配置来降低...

  • SQL注入与防范

    在web应用架构下,终端用户无法直接访问数据库,需要通过http请求到java应用服务器,然后由java应用服务器...

  • SQL注入实战篇

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

  • JDBCtemplate防范Sql注入攻击

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

  • SQL注入攻击的防范

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

网友评论

    本文标题:SQL注入及其防范

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