php中过滤非法字符的具体实现_PHP教程
程序员文章站
2024-02-02 10:26:31
...
复制代码 代码如下:
class sqlsafe {
private $getfilter = "'|(and|or)\\b.+?(>|private $postfilter = "\\b(and|or)\\b.{1,6}?(=|>|private $cookiefilter = "\\b(and|or)\\b.{1,6}?(=|>|/**
* 构造函数
*/
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);
}
}
/**
* SQL注入日志
*/
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);
}
}
?>
推荐阅读
-
php中过滤非法字符的具体实现_PHP教程
-
PHP批量上传图片的具体实现方法介绍._PHP教程
-
过滤字符串中 url,图片地址的正则表达式_PHP教程
-
PHP中substr_count()函数获取子字符串出现次数的方法,phpsubstr_count_PHP教程
-
如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)_PHP教程
-
PHP 过滤页面中的BOM(实现代码)
-
php中的字符串和正则表达式,php正则表达式_PHP教程
-
codeigniter中实现一次性加载多个view的方法,codeigniterview_PHP教程
-
PHP字符串word末字符实现大小写互换的方法,字符串大小写_PHP教程
-
PHP实现数据结构中的排序算法_PHP教程