防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
相关文章
![Go 的'database/sql”库如何防止 SQL 注入?](https://img.php.cn/upload/article/001/246/273/173406745639138.jpg)
13Dec2024
在 Go 中使用“database/sql”防范 SQL 注入 在构建 Web 应用程序时,防止 SQL 注入攻击至关重要。经过...
![Go的database/sql库如何防止SQL注入攻击?](https://img.php.cn/upload/article/001/246/273/173467267274097.jpg)
20Dec2024
使用“database/sql”库防止 Go 中的 SQL 注入攻击在 Web 开发中,SQL 注入攻击带来了显着的安全性......
![Go的'database/sql”库如何防止SQL注入攻击?](https://img.php.cn/upload/article/001/246/273/173511793738946.jpg)
25Dec2024
在 Go 中使用“database/sql”防止 SQL 注入攻击构建 Web 应用程序时,保护输入对于防止恶意攻击至关重要......
![php 防sql注入方法](https://img.php.cn/upload/article/202011/02/2020110209101610499.jpg)
02Nov2020
php防sql注入的方法:1、使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符;2、打开magic_quotes_gpc来防止SQL注入;3、通过自定义函数防sql注入。
![哪个 PHP 库提供卓越的 SQL 注入防护:PDO 还是 mysql_real_escape_string?](https://img.php.cn/upload/article/001/246/273/172960302479057.jpg)
22Oct2024
PHP 数据对象 (PDO) 为查询转义提供了比 mysql_real_escape_string 更好的替代方案。 PDO 的优点包括数据库独立性、自动转义、参数替换和改进的错误处理,使其成为更加健壮的、e
![](/static/imghwm/down_right.png)
![](/static/imghwm/taglogo.png)
Hot Tools
![](/static/imghwm/taglogo.png)
热门文章
Tales Of Graces F 重制版:所有锁定的宝箱密码
18Jan2025手游攻略
崩坏:星穹铁道 - 所有金色替罪羊谜题解决方案
18Jan2025手游攻略
王国来:拯救2-婚礼要买的衣服
05Feb2025手游攻略
王国来:拯救2-如何获得Comfrey
07Feb2025手游攻略
王国来:拯救2-如何找到和领导伊格纳修斯公羊
05Feb2025手游攻略