mysql的sql注入介绍
来源:互联网 发布:php优化方案 编辑:程序博客网 时间:2024/06/11 19:21
SQL注入简介
结构化查询语言(SQL)是一种用来和数据库交互的文本语言。SQL Injection就是利用数据库的外部接口将用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的,它的产生实际上由于程序对用户输入的数据没有进行严格的过滤,导致非法数据库查询语句的执行。
比如说,服务端中用php写的sql语句,
$sql = "SELECT * FROM user WHERE username='$_POST[username]' AND password='$_POST[password]'";模拟表单进行POST提交,url中的参数username=' or '1'='1' '&password=' or '1'='1' ';,会将查询表的所有数据查询出来。也可以在参数后面接#或者/*,将后面的查询条件过滤掉。
对于Java的JSP开发,可以使用PrepareStatement+Bind-varibale防止SQL注入,另外从PHP5开始,mySqli中支持PrepareStatement,尽量不要使用拼接的SQL语句
使用应用程序提供的转换函数,
使用应用程序提供的转换函数,
mySql C API: 使用mysql_real_escape_string() API调用
mySql++:使用escape和quote修饰符
PHP:使用mysql_real_escape_string()函数,从PHP5开始,可以使用扩展的mySqli,支持PrepareStatement
Perl DBI:使用placeholders或者quote()方法
Ruby DBI:使用placeholders或者quote()方法
自己定义函数进行校验,
整理数据使之变得有效,拒绝已知的非法输入,只接受已知的合法输入。
可以采用正则表达式的方法,过滤掉已知的非法符号,
"'"、";"、,"="、"("、")"、"/*"、"*/"、"#"、"%"、"+"、">"、"<"、"--"、"["、"]",但这种黑名单式的防注入方式,总会被找到漏洞进行攻击,推荐使用prepare,动态绑定参数。
阅读全文
0 0
- mysql的sql注入介绍
- 【sql注入】mysql注入
- SQL 注入的介绍与代码防御
- 以mysql为例介绍PreparedStatement防止sql注入原理
- sql注入工具介绍
- mysql防sql注入的php函数
- MySQL for Java的SQL注入测试
- Mysql使用SQL的安全问题,Mysql防止SQL注入
- SQL注入Mysql
- mysql防止sql注入
- MySQL防止SQL注入
- MySQL 及 SQL 注入
- mysql防sql注入
- mysql 防止sql注入
- mysql防止SQL 注入
- mysql sql 注入
- SQL注入--MySql
- MySQL 及 SQL 注入
- 实验6:图的实验1——图的邻接矩阵存储实现
- php-app开发接口加密范例
- 绝对中位差Median Absolute Deviation
- 提高你开发效率的十五个 Visual Studio 使用技巧
- 逻辑回归实战 — Kaggle_Titanic
- mysql的sql注入介绍
- 下载Eclipse,以及安装
- 浅谈C++类
- eclipse :SVN E175002报错解决
- 进程间通信(IPC)
- 深入了解java虚拟机!
- java面试题全集(下)
- 建议3:三元操作符的类型务必一致
- Cartographer+北阳雷达实现