<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當前位置:首頁>軟件介紹>PHP之防御sql注入攻擊的方式 查詢:
               
          PHP之防御sql注入攻擊的方式

          長期以來,web的安全性存在著巨大的爭議與挑戰(zhàn)。其中,sql注入就是一種常見的一種攻擊方法,開發(fā)人員普遍的做法就是不停的過濾,轉(zhuǎn)義參數(shù),可是我們php大法天生弱類型的機制,總是讓黑客有機可乘,繞過防御與防御總是在明爭暗斗。

          PHP大牛說過一句話,在一個程序中,60%的代碼都應(yīng)該是在進行各種防御。

          其實,現(xiàn)在來看,防御sql注入其實并不需要進行各種參數(shù)過濾,以下將開啟干貨模式!

          PHP5.x開始引入了一種新的mysql操作方式-----mysqli,在php中也有一項相應(yīng)的操作方式叫做PHP預處理。采用面向?qū)ο蟮姆绞絹磉M行參數(shù)化綁定操作,由于對數(shù)據(jù)庫操作的模式驅(qū)動不同,因此可以非常有效的防御sql注入。

          首先,我們先來看一段代碼例子

          php代碼:

          <!--?php

          $root = "root";

          $pwd = "root";

          $host = "localhost";

          $database = "database";

          $conn = new mysqli($host,$root,$pwd,$database);//面向?qū)ο蟮姆绞綄嵗粋€對象

          $keywords = $_GET['keywords'];

          $search_sql = "select content from mykey where title = ? ";//其中的?是一個占位符$search_action = $conn --->prepare($search_sql);//進行預處理操作

          $search_action ->bind_param("s",$keywords);//綁定參數(shù),第一個參數(shù)表示為上面預處理的的占位符的數(shù)量和每一個參數(shù)的數(shù)據(jù)類型,s為字符串,i為整形,d為雙精度小數(shù),有幾個參數(shù),就寫幾個s或d或i,比如說iiii,ssss,sidi這樣的。然后后面就是有幾個參數(shù)就寫幾個要綁定的變量,比如bind_param('sss',$username,$password,$code); $search_action ->bind_result($content);//將結(jié)果綁定在相對應(yīng)的變量上,比如你select 了username,password,你就可以寫bind_result($usernmae,$password);

          $search_action ->execute();//執(zhí)行sql操作

          while($search_action ->fetch()){

          echo $content.'<br>';

          }

          $search_action ->free_result();//釋放內(nèi)存

          $search_action ->close();//結(jié)束這個實例化

          ?>

          上面是php預處理中一個非常簡單的例子,它內(nèi)置的其他函數(shù)能很方便我們的開發(fā)速度,那么看到這里,很多人可能還是不明白,有人可能想問,你這個綁定參數(shù)是不是還是在拼湊sql語句?如果是拼湊語句,那還不是會產(chǎn)生注入嗎?

          這就要從他的操作原理來解釋了,其實它在prepare操作中,就已經(jīng)在數(shù)據(jù)庫中,執(zhí)行了語句,以后的綁定參數(shù)和執(zhí)行,只不過是再傳遞數(shù)據(jù)進去而已,所以根本不會和sql

          語句拼接,也就自然不會將危險代碼執(zhí)行。因此,在這種模式下sql注入就能很有效的被防御了。

          在php預處理的類中有很多很好用的操作,具體的將會在以后的文章中為大家總結(jié)一些常用的php預處理的開發(fā)語句。



          php調(diào)用linux計劃任務(wù)php里session的用法
          php在百度的發(fā)展歷程php中關(guān)于引用(&)詳解
          PHP正則表達式的幾則使用技巧 細說PHP模板引擎
          windows下PHP運行環(huán)境安裝詳解js與php調(diào)用
          PHP與ASP.NET的比較PHP基本語法補充案例
          PHP簡明教程php開源框架分析
          PHP文件刪除程序php陰歷程序
          寶典php驗證碼制作PHP的頁面緩沖處理機制
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價:
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 女人片60免费视频18 | 青青操拍拍视频 | 北条麻妃无码一区二区 | 五月丁香激情六月 | FC2清純18歲在线播放 | 国产精品久久久久久久激情视频 | 超级A片在线观看 | 黄片操B| 谁有毛片网址 | 操逼剧场|