防SQL注入的php類別函式庫
<?php class sqlsafe { 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)"; 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)"; 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)"; public function __construct() { foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);} foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);} foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);} } public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){ if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue); if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){ $this->writeslog($_SERVER["REMOTE_ADDR"]." ".strftime("%Y-%m-%d %H:%M:%S")." ".$_SERVER["PHP_SELF"]." ".$_SERVER["REQUEST_METHOD"]." ".$StrFiltKey." ".$StrFiltValue); showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1); } } public function writeslog($log){ $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt'; $ts = fopen($log_path,"a+"); fputs($ts,$log."\r\n"); fclose($ts); } }
本類別庫首先建構函數參數,然後檢查並寫日誌最後檢查SQL注入日誌。是一個很好用的防SQL注入的php類別函式庫
免責聲明
本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn
相關文章
PHP爬蟲入門:如何選擇合適的類別函式庫?
09 Aug 2023
PHP爬蟲入門:如何選擇合適的類別函式庫?隨著網路的快速發展,大量的數據散落在各個網站中。為了取得這些數據,我們常常需要使用爬蟲來從網頁中擷取資訊。而PHP作為常用的網頁開發語言,也有許多適用於爬蟲的類庫可供選擇。然而,在選擇適合自己專案需求的類別庫時,我們需要考慮一些關鍵因素。功能豐富性:不同的爬蟲類庫提供了不同的功能。有些類別庫只能用於簡單的網頁抓取,而有些
php常用的第三方類別函式庫有哪些
18 Sep 2023
php常用的第三方類別函式庫有Laravel、Symfony、Guzzle、PHPUnit、Monolog、Swift Mailer、PHPExcel、Carbon、Doctrine、PHPMailer等。詳細介紹:1、Laravel是一個流行的PHP框架,提供了豐富的功能和工具,用於快速構建Web應用程序,它包含了許多常用的類庫,例如路由、數據庫訪問、模板引擎、身份驗證等等。
Hot tools Tags
Hot Tools
Hot Article
魯瑪島:如何取得工具代幣
14 Nov 2024
手游攻略
Stalker 2 Budmo 任務指南:你該從藏匿處偷東西嗎?
25 Nov 2024
手游攻略
為什麼 `position: Sticky` 和 `bottom: 0` 的行為與 MDN 的描述相反?
21 Nov 2024
css教學
如何在《潛行者 2》中獲得 Zalissya 記者寶藏
26 Nov 2024
手游攻略
潛行者 2:如何取得溺水武器
25 Nov 2024
手游攻略