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

PHP
如何防止入侵:My SQL各种攻击方法大全
教你使用MySQL:MySQL常用命令一览
教你如何在linux下建立mysql镜像数据库
实际应用:MySQL5存储过程编写实践
MySQL手册版本 5.0.20-MySQL同步
MySQL手册版本 5.0.20-MySQL同步(二)
MySQL手册版本 5.0.20-MySQL同步(三)
MySQL 版本 卸载与安装
[Mysql]Mysql中mysqldump命令使用详解 (1)
[Mysql]Mysql中mysqldump命令使用详解 (2)
通过缓存数据库结果提高PHP性能(1)
通过缓存数据库结果提高PHP性能(2)
通过缓存数据库结果提高PHP性能(3)
通过缓存数据库结果提高PHP性能(4)
如何使用SQL Server 2005 INSTEAD-OF触发器
实例讲解MySQL数据库的查询优化技术 (1)(2)
实例讲解MySQL数据库的查询优化技术 (1)
高手心得:提高MySQL性能的方法 (1)(2)
高手心得:提高MySQL性能的方法 (1)
工作笔记:配置MySQL为高可用集群 (1)(2)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 98 ::
收藏到网摘: 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´]); //调用过滤方法