当前位置: 首页 > SEO学院SEO知识

超级蜘蛛蜘蛛 池之何谓为SQL注入?[基础]

来源:未知 浏览量:155次

还记得小学语文考试上的填空题吗? 题目的意图明显是通过填空来了解答题者的名字和爱好。

比如:我是_______________喜欢__________________

超级蜘蛛池之何谓为SQL注入?[基础]

如果有同学填成下面这样?

我是超级蜘蛛池我可以引蜘蛛快速提高收录北京搜索优化我可以引蜘蛛快速提高收录喜欢_______________________

超级蜘蛛池之何谓为SQL注入?[基础]

通过精心构造的URL参数或者表单提交的参数拼接到预先定义好的SQL格式时意外地改变了程序员预期的SQL结构时SQL注入就构成了。执行该SQL语句已超出的程序员的意图。比如没用用户名或密码可以登陆成功或将数据库内容全部dump下来等等。

第一步、我们先安装测试环境。安装Apache、PHP、MySQL 这里用的LINUX环境

在Ubuntu下安全LAMP非常简单只需要一个命令就可以了:

     sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql

如果你有Web动态语言开发经验php是个很容易上手的语言。当然我们选用LAMP的目的不是Web本身是使用它来写一个demo的数据库应用测试SQL注入。

在安装MySQL过程中会要求设置root用户的密码设置成root(后面链接数据库时需要)。

安装完成后web 项目根目录默认在/var/www/ 为了简单起来对LAMP不做任何配置。打开浏览器输入 测试安装是否成功。下是测试成功的例子。

测试一下php是否工作正常创建一个test.php文件 sudo vim /var/www/test.php  输入下面的代码:

 <?php

phpinfo()

 ?>

在浏览器打开 输出结果如下: 

PHP测试环境搭建成功了。

第二步、编写简单的数据库应用   

使用mysql客户端连接MySQL数据命令如下:#mysql -h localhost -u root -p 

Enter password: <这里输入密码:root>

输入用户root的密码root成功登录之后的过程: 


创建数据库test

首先要创建一个数据库这里将数据名字称为test在mysql客户端输入如下命令:

mysql>create database test;

进入test数据库

mysql> use test;

创建表userinfo

有了数据库还得有表才能装下真正的数据。简单起见表只有两个字段name和passwd分别保存用户名和密码其中name为主键。MySQL下的创建语句:

create table userinfo (name char(20) not null primary key, passwd char(20) not null);

插入用户数据

为了测试需要往表里面插入数据。使用mysql语句往userinfo表插入两个用户信息分别是linyt和ivan密码和用户名内空一样。

MySQL语句如下:

insert into userinfo values('linyt', 'linyt'); 

insert into userinfo values('ivan','ivan');

测试一下数据表内容

在MySQL客户端输入:select * from userinfo;命令可以看到userinfo表中所有记录。

下面使用php脚本语言编写个简单的登录系统。代码如下: 

原理非常简单通过username 和 passwd 两个文本框接受用户输入的用户名和密码然链接数据库

展开全部内容