栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java如何避免sql注入详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java如何避免sql注入详解

sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息、利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。

造成sql注入的原因:

程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL脚本,程序在接收后错误的将攻击者的输入作为SQL语句的一部分执行,导致原始的查询逻辑被改变,执行了攻击者精心构造的恶意SQL语句。

如从用户表根据用户名admin和密码123查用户信息

select * from User where username = 'admin' and password = '123'

攻击者恶意修改用户名参数 admin-->xxxx or 1=1 --

select * from user where username = 'xxxx' or 1=1 --and password = '123'

SQL中--是注释标记,如果上面这个SQL被执行,就可以让攻击者在不知道任何用户名和密码的情况下成功登录。所以,防止sql注入至关重要

预防sql注入方法:

严格限制Web应用的数据库的操作权限,给连接数据库的用户提供满足需要的最低权限,最大限度的减少注入攻击对数据库的危害对进入数据库的特殊字符进行转义处理,或编码转换校验参数的数据格式是否合法(可以使用正则或特殊字符的判断)预编译SQL (Java中使用PreparedStatement),参数化查询方式,避免SQL拼接使用mybatis的"#{}“预编译,将传入的值按照字符串的形式进行处理发布前,利用工具进行SQL注入检测报错信息不要包含SQL信息输出到 Web 页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号