更多>
最新下载
24小时阅读排行榜
- 1 HTML5怎样用AES算法加密字符串_HTML5AES字符串加密操作法【心得】
- 2 php如何压缩字符串_php压缩字符串gzencode用法【压缩】
- 3 c++的[[msvc::forceinline]]和[[gnu::always_inline]]有什么区别? (强制内联)
- 4 C++中的深拷贝和浅拷贝有什么区别?(代码示例)
- 5 GoX 构建失败:解决 SQLite3 交叉编译中 CGO 相关错误的完整指南
- 6 HTML5怎样给侧边栏加立体边框_HTML5给侧边栏加立体边框办法【侧边】
- 7 如何解决 gox 构建时因 CGO 禁用导致 sqlite3 编译失败的问题
- 8 如何解决 gox 构建时因 sqlite3 C 代码引发的编译失败问题
- 9 C++中的std::atomic有什么用?(原子操作防止竞态条件)
- 10 c++中如何使用std::async实现异步编程_c++异步任务教程
- 11 ps怎么用蒙版更换背景图片 ps蒙版换背景详细步骤
- 12 C++中的std::any可以存储任意类型吗?(类型安全的万能存储容器)
- 13 如何在 PHP 中动态包含并执行含用户变量的文件内容
- 14 laravel scout搜索强吗_评laravel全文搜索集成能力【搜索】
- 15 Angular 中父子组件通信:基于 ngFor 动态传递空数组状态的完整实现
更多>
最新教程
-
- Node.js 教程
- 15508 2025-08-28
-
- CSS3 教程
- 1544662 2025-08-27
-
- Rust 教程
- 22795 2025-08-27
-
- Vue 教程
- 25269 2025-08-22
-
- PostgreSQL 教程
- 21854 2025-08-21
-
- Git 教程
- 8863 2025-08-21
下载首页 / 类库下载 / 其它类库
<?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
