咨询,就免费赠送域名与服务器,咨询热线:18210983909当前位置: 主页 > 建站知识 > 网站建设开发 > PHP语言开发学习教程 >
内容合作
联系我们
西安SEO网站优化建设公司咨询 建站咨询 西安SEO网站关键词排名优化公司 优化咨询
电话咨询:18210983909
E-mail:15210415824@qq.com
地址: 北京市海淀区尚东数字山谷A区1号楼

php中sql注入漏洞例子以及修复sql注入漏洞

作者/整理:SEO网站优化 点击量:次 来源:互联网 日期: 2017-03-20

在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:
URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下。

 一、SQL注入的步骤

a)  寻找注入点(如:登录界面、留言板等)

b)  用户自己构造SQL语句(如:' or 1=1#,后面会讲解)

c)  将sql语句发送给数据库管理系统(DBMS)

d)  DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作

e)  DBMS接受返回的结果,并处理,返回给用户


因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL语句够灵活的话)。

下面,我通过一个实例具体来演示下SQL注入

二、SQL注入实例详解(以上测试均假设服务器未开启magic_quote_gpc)

1)  前期准备工作

先来演示通过SQL注入漏洞,登入后台管理员界面

首先,创建一张试验用的数据表:


 代码如下:
CREATE TABLE `users` (

`id`int(11) NOT NULL AUTO_INCREMENT,

`username`varchar(64) NOT NULL,

`password`varchar(64) NOT NULL,

`email`varchar(64) NOT NULL,

PRIMARYKEY (`id`),

UNIQUEKEY `username` (`username`)

)ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;



添加一条记录用于测试:


 代码如下:
INSERT  INTO users (username,password,email)

VALUES('MarcoFly',md5('test'),'marcofly@test.com');



接下来,贴上登录界面的源代码:
 代码如下:
<html>
<head>
<title>Sql注入演示</title>
<meta http-equiv="content-type"content="text/html;charset=utf-8">
</head>
<body>
<form action="validate.php" method="post">
  <fieldset >
    <legend>Sql注入演示</legend>
    <table>
      <tr>
        <td>用户名:</td>
        <td><inputtype="text" name="username"></td>
      </tr>
      <tr>
        <td>密  码:</td>
        <td><inputtype="text" name="password"></td>
      </tr>
      <tr>
        <td><inputtype="submit" value="提交"></td>
        <td><inputtype="reset" value="重置"></td>
      </tr>
    </table>
  </fieldset>
</form>
</body>
</html>

Php框架之slim3.0应用小实例 PHP知识 由PHP木马程序带来的实战入侵
多功能php绿色集成环境,700个PHP版 请写一段 PHP 代码,确保多个进程同 使用php完成常见的“文件上传”功
php文件输入输出学习 PHP文件及数据编码转换解决乱码问 PHP学习之ThinkPHP5.0框架搭建
PHP里文件的查找方式及写法 php开发教学:文件上传的步骤 PDF文件(图片格式存储文字)直转
连接网络或PHP文件失败?2017新版如 路径正确下,Eclipse读取txt文件仍失 phpcms前台显示“栏目禁止投稿”的
浅谈:在PHP中该怎样防止SQL注入? smarty3从入门到精通详解 php数据类型详解
PHP常用函数小全 PHP中iconv函数解决utf-8和gb2312编码转 方法总结:PHP页面跳转到另一个页
php中json_decode()和json_encode() php在程序中将网页生成word文档并提 intval()和(int)转换使用与区别
PHPMyadmin 配置文件详解 PHP正则表达式语法汇总 PHP正则表达式常用例子
PHP二维数组排序的具体方法详解 PHP读取Excel文件类的具体应用 PHP如何判断文件、目录是否存在?
php生成随机验证码 PHP如何在服务器下实现多session并发 什么是 MVC 模式?
PHP批量将数据插入MySQL数据库 PHP连接MYSQL详解 PHP删除数组中的空值
十大PHP最佳安全实践 PHP本身的安全配置详解 PHP安全配置详解
漫谈PHP的安全性 PHP安全之Register Globals PHP安全之错误报告
PHP实现的Mysql读写分离 php json_encode 中文 utf-8 乱码 php无刷新上传文件代码