1. 程式人生 > 實用技巧 >說說在PHP中,MySQL如何防止SQL注入

說說在PHP中,MySQL如何防止SQL注入

方法一:

mysql_real_escape_string -- 轉義 SQL 語句中使用的字串中的特殊字元,並考慮到連線的當前字符集 !

$sql = "select count(*) as ctr from users where username
='".mysql_real_escape_string($username)."' and
password='". mysql_real_escape_string($pw)."' limit 1";

方法二:

開啟magic_quotes_gpc來防止SQL注入。php.ini中有一個設定:magic_quotes_gpc = Off這個預設是關閉的,如果它開啟後將自動把使用者提交對sql的查詢進行轉換,比如把 ' 轉為 '等,對於防止sql注射有重大作用。

如果magic_quotes_gpc=Off,則使用addslashes()函式。

方法三:

自定義函式

/**
* 防止sql注入自定義方法一
* author: xiaochuan
* @param: mixed $value 引數值
*/ 
function check_param($value=null) {
        #  select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile
    $str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';
  
    if(!$value) {
  
        exit('沒有引數!');
  
    }elseif(eregi($str, $value)) {
  
        exit('引數非法!');
  
    }
  
    return true;
}
   
  
  
  
  
  
  
/**
* 防止sql注入自定義方法二
* author: xiaochuan
* @param: mixed $value 引數值
*/
function str_check( $value ) {
  
    if(!get_magic_quotes_gpc()) {
  
        // 進行過濾
        $value = addslashes($value);
  
    }
  
    $value = str_replace("_", "\_", $value);
  
    $value = str_replace("%", "\%", $value);
       
   return $value;
}
   
  
  
  
  
  
/**
* 防止sql注入自定義方法三
* author: xiaochuan
* @param: mixed $value 引數值
*/
function post_check($value) {
  
    if(!get_magic_quotes_gpc()) {
  
        // 進行過濾 
        $value = addslashes($value);
  
    }
  
    $value = str_replace("_", "\_", $value);
  
    $value = str_replace("%", "\%", $value);
  
    $value = nl2br($value);
  
    $value = htmlspecialchars($value);
  
    return $value;
}

點關注,不迷路

好了各位,以上就是這篇文章的全部內容了,能看到這裡的人呀,都是人才。之前說過,PHP方面的技術點很多,也是因為太多了,實在是寫不過來,寫過來了大家也不會看的太多,所以我這裡把它整理成了PDF和文件,如果有需要的可以

點選進入暗號: PHP+「平臺」


更多學習內容可以訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)

以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務程式碼寫多了沒有方向感,不知道該從那裡入手去提升,對此我整理了一些資料,包括但不限於:分散式架構、高可擴充套件、高效能、高併發、伺服器效能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell指令碼、Docker、微服務、Nginx

等多個知識點高階進階乾貨需要的可以免費分享給大家,需要的可以加入我的 PHP技術交流群