当前位置: 首页 > 图文教程 > 网络编程 > PHP > php 字符过滤类,用于过滤各类用户输入的数据

PHP
利用客户端缓存对网站进行优化的原理分析
php生成随机数或者字符串的代码
php include,include_once,require,require_once
php 特殊字符处理函数
php让图片可以下载的代码
网友原创的PHP模板类代码
wiki-shan写的php在线加密的解密程序
php chr() ord()中文截取乱码问题解决方法
php+AJAX传送中文会导致乱码的问题的解决方法
php面向对象的方法重载两种版本比较
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
php递归列出所有文件和目录的代码
php获取某个目录大小的代码
php目录管理函数小结
Zend Guard一些常见问题解答
fleaphp下不确定的多条件查询的巧妙解决方法
PHP下10件你也许并不了解的事情
PHP常用函数小技巧
php5 pdo新改动加载注意事项
php5新改动之短标记启用方法

PHP 中的 php 字符过滤类,用于过滤各类用户输入的数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 231 ::
收藏到网摘: n/a

最近老看到有人的网站被挂马,发一个php的字符过滤类,建议广大站长朋友们多关注下,安全方面的知识。 详细代码如下:
复制代码 代码如下:

<?php
abstract class Filter { //filter parent class
private $blackstr = array();
private $whitestr = array();
function filtit($str) {
//do something
}
}
class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名)
function filtit($str) {
$this -> blackstr = array(
´/[\x7f-\xff]/´, //filter chinese include chinese symbol
´/\W/´ //filter all english symbol
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class EditorFilter extends Filter { //for article editor filter(过滤在线编辑器内容)
function filtit($str) {
$this -> blackstr = array(
´/\&/´,
´/\´/´,
´/\"/´,
´/\</´,
´/\>/´,
´/\\\\/´,
´/\//´,
´/-/´,
´/\*/´,
´/ /´
);
$this -> whitestr = array(
´&´,
´'´,
´"´,
´<´,
´>´,
´\´,
´/´,
´-´,
´*´,
´ ´
);
return preg_replace($this->blackstr, $this -> whitestr, $str);
}
}
class SQLFilter extends Filter { //for filte sql query string(过滤如查询或其它sql语句)
function filtit($str) {
$this -> blackstr = array(
´/\´/´,
´/-/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class FileNameFilter extends Filter { //for filte a file name(过滤文件名如下载文件名)
function filtit($str) {
$this -> blackstr = array(
´/[^A-za-z0-9_\.]|\\\\|\^|\[|\]/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
?>

使用方法如:
复制代码 代码如下:

$filter = new FileNameFilter(); //定义实例
$downFile = $filter->filtit($_GET[´fn´]); //调用过滤方法