使用TP架構仿sql攻擊注入

來源:互聯網
上載者:User
仿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,對使用者提交的資料進行轉義

調用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注入的方法執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.