国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP網頁防范SQL注入方法配置

2024-05-04 21:58:47
字體:
來源:轉載
供稿:網友

前提條件是我們需要有服務器的管理權限,就是可以修改php.ini文件了,下面我來介紹修改php配置文件來防范SQL注入方法有需要學習的朋友可參考.

為了安全起見,可以打開“php.ini”文件的安全模式,設置“safe_mode=On”;顯示 PHP 執行錯誤信息的 “display_erros”選項如果打開的話,將會返回很多可利用的信息給入侵者,因此要將其設置為“display_erros=off”;這樣,PHP 函數執行錯誤后的信息將不會在客戶端的瀏覽器中進行顯示.

此外,在文件還有一個很重要的配置選項,如果將其中的“magic_quotes_gpc”項設置為“On”,PHP 程序會自動將用戶提交的變量是含有的“'”、“"”、“”自動轉為含有反斜線的轉義字符,這個選項類似 ASP 程序中的參數過濾,可以對大部分字符型注入攻擊起到防范的作用.

一段程序非常不錯,如果你沒有服務器管理權限,可以使用如下代碼:

  1. <?php 
  2. class sqlsafe { 
  3.  private $getfilter = "'|(and|or)/b.+?(>|<|=|in|like)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)"
  4.  private $postfilter = "/b(and|or)/b.{1,6}?(=|>|<|/bin/b|/blike/b)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)"
  5.  private $cookiefilter = "/b(and|or)/b.{1,6}?(=|>|<|/bin/b|/blike/b)|///*.+?/*//|</s*script/b|/bEXEC/b|UNION.+?SELECT|UPDATE.+?SET|INSERT/s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)/s+(TABLE|DATABASE)"
  6.  /** 
  7.   * 構造函數 
  8.   */ 
  9.  public function __construct() { 
  10.   foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);} 
  11.   foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);} 
  12.   foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);} 
  13.  } 
  14.  /** 
  15.   * 參數檢查并寫日志 
  16.   */ 
  17.  public function stopattack($StrFiltKey$StrFiltValue$ArrFiltReq){ 
  18.   if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue); 
  19.   if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){    
  20.    $this->writeslog($_SERVER["REMOTE_ADDR"]."    ".strftime("%Y-%m-%d %H:%M:%S")."    ".$_SERVER["PHP_SELF"]."    ".$_SERVER["REQUEST_METHOD"]."    ".$StrFiltKey."    ".$StrFiltValue); 
  21.    showmsg('您提交的參數非法,系統已記錄您的本次操作!','',0,1); 
  22.   } 
  23.  } 
  24.  /** 
  25.   * SQL注入日志 
  26.   */ 
  27.  public function writeslog($log){ 
  28.   $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt';//開源代碼Vevb.com 
  29.   $ts = fopen($log_path,"a+"); 
  30.   fputs($ts,$log."rn"); 
  31.   fclose($ts); 
  32.  } 
  33. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克什克腾旗| 汨罗市| 开鲁县| 贺州市| 晴隆县| 曲水县| 阿荣旗| 昆山市| 蚌埠市| 章丘市| 石首市| 桐乡市| 灯塔市| 桓台县| 高尔夫| 堆龙德庆县| 确山县| 寻乌县| 嘉峪关市| 广元市| 宜兰县| 陈巴尔虎旗| 务川| 临汾市| 赣榆县| 南城县| 临沭县| 临沂市| 运城市| 原平市| 九寨沟县| 环江| 晴隆县| 赤城县| 新密市| 罗江县| 博乐市| 喀什市| 通州市| 河北省| 迁西县|