首頁  >  文章  >  後端開發  >  使用TP框架仿sql攻擊注入

使用TP框架仿sql攻擊注入

韦小宝
韦小宝原創
2018-03-14 10:51:104159瀏覽

仿sql注入

#SEO: 

##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,對使用者提交的資料進行轉義

##### ####呼叫###php###的######addslashes###()######函數###############$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注入的方法實例#

以上是使用TP框架仿sql攻擊注入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn