Rumah  >  Artikel  >  pembangunan bahagian belakang  >  使用TP框架仿sql攻击注入

使用TP框架仿sql攻击注入

韦小宝
韦小宝asal
2018-03-14 10:51:104101semak imbas

仿sql注入

SEO: 

1,如果优化的话 title部分是非常重要的,用来优化我们网站的关键字的

搜索引擎会根据关键字对你的网站归类,如果网站权重高的话,当用户搜索关键字的时候,会先看到你的网站

2,日与网站---指向英文的网站,说明日语的网站给英文的投了一票,如果给英语的网站投的票越多,说明英文的网站越好

防止SQL注入:

1,建一个用户登录的表单

select()  会查询出所有的记录

find()    只会查询一条记录

写一个简单的用户名验证,在用户名表单中写上’or 1 or’也会提示用户名正确,

思考题:为什么会不验证就成功了?

echo $model->getLastsql();//打印出sql语句

经过查询执行的sql语句,我们发现,导致sql注入的原因是单引号

因为:

1,通过php魔术引号,来将用户输入的数据进行转义

php的低版本,默认是开启的,这样会自动的将用户输入的数据进行转义

php.ini中的

是开启的改为

Magic_quotes_gpc=On

就可以防止验证正确

2,对用户提交的数据进行转义

调用phpaddslashes()函数

$username=addslashes($_POST['username']);addslashes函数处理一下

3,利用thinkphp系统变量获得外部数据 $this->_server

 thinkphp系统常量 (4)

$this->_post('username','addslashes');

4,使用数组作为tp框架中 where条件

5、直接把查询语句写成

$list=$model->where('user_name="'.$username.'" and dept_id="'.$password.'"')->select();就不会登陆成功了

例:

//仿sql注入
public function login(){
 $this->display();
 }
public function verify(){
 //用户名'or 1 or'登录会提示登录成功,是不正确的
 //方法1修改ini.php
 $username=$_POST['username'];
 $password=$_POST['password'];
 //方法2
 /*$username=addslashes($_POST['username']);
 $password=$_POST['password'];
 //方法3
 $this->_post('username','addslashes');
 $password=$_POST['password'];
 //方法4数组
 $cond['user_name']=$username;
 $cond['dept_id']=$password;
 $list=$model->where($cond)->find();*/
 
 $model=M('User');
 //方法5
    // $list=$model->where('user_name="'.$username.'" and dept_id="'.$password.'"')->select();
  $list=$model->where("user_name='$username' and dept_id='$password'")->select();
  echo $model->getLastsql();//打印出sql语句
  if($list){
   echo '登录成功';
   }else{
    echo '登录失败';
    }
   
 }

tpl:

<form action="URL/verify" method="post">
用户名:<input type="text" name="username">
密码:<input type="text" name="password">
<input type="submit" value="提交">
</form>

以上讲述的就是thinkphp防止sql注入攻击了,方法不止一种,大家可以尝试的去写一下,练练手。

相关推荐:

PHP实现防止SQL注入的方法实例

Atas ialah kandungan terperinci 使用TP框架仿sql攻击注入. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn