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

 更新时间:2009年05月27日 01:22:50   作者:  
最近老看到有人的网站被挂马,发一个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(
´&amp;´,
´&#39;´,
´&quot;´,
´&lt;´,
´&gt;´,
´&#92;´,
´&#47;´,
´&#45;´,
´&#42;´,
´&nbsp;´
);
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´]); //调用过滤方法

相关文章

  • php微信支付接口开发程序

    php微信支付接口开发程序

    微信支付接口现在也慢慢的像支付宝一个可以利用api接口来实现第三方网站或应用进行支付了,下文整理了一个php微信支付接口开发程序并且己测试,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • php进程通信之信号量浅析介绍

    php进程通信之信号量浅析介绍

    信号量又称为信号灯、旗语 用来解决进程(线程同步的问题),类似于一把锁,访问前获取锁(获取不到则等待),访问后释放锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • php解决约瑟夫环算法实例分析

    php解决约瑟夫环算法实例分析

    这篇文章主要介绍了php解决约瑟夫环算法,结合实例形式分析了约瑟夫环问题的原理、解决方法及相关算法实现技巧,需要的朋友可以参考下
    2019-09-09
  • php实现向javascript传递数组的方法

    php实现向javascript传递数组的方法

    这篇文章主要介绍了php实现向javascript传递数组的方法,涉及php数组转json传递到javascript的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例

    PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例

    这篇文章主要介绍了PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,CURLOPT_RETURNTRANSFER参数的作用是把CRUL获取的内容赋值到变量,需要的朋友可以参考下
    2015-02-02
  • php上传文件并存储到mysql数据库的方法

    php上传文件并存储到mysql数据库的方法

    这篇文章主要介绍了php上传文件并存储到mysql数据库的方法,以完整实例形式较为详细的分析了php操作文件上传与数据库存储的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 解析如何屏蔽php中的phpinfo()函数

    解析如何屏蔽php中的phpinfo()函数

    本篇文章是对如何屏蔽php中的phpinfo()函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php中yar框架实例用法讲解

    php中yar框架实例用法讲解

    在本篇内容里小编给大家分享了一篇关于php中yar框架实例用法讲解内容,需要的朋友们可以学习下。
    2020-12-12
  • php中http_build_query 的一个问题

    php中http_build_query 的一个问题

    http_build_query 远程攻击者可以利用漏洞获得敏感内存信息。请大家谨慎使用
    2012-03-03
  • 用mysql触发器自动更新memcache的实现代码

    用mysql触发器自动更新memcache的实现代码

    不错的一篇文章,用于项目中可以带来更多的便利,按照方法已经调试成功,可以大大提高项目的速度。
    2009-10-10

最新评论