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 的多进程操作实践案例分析

    这篇文章主要介绍了php 的多进程操作,结合具体实例形式总结分析了php多进程的常见操作技巧与相关使用注意事项,需要的朋友可以参考下
    2020-02-02
  • PHP 内存缓存加速功能memcached安装与用法

    PHP 内存缓存加速功能memcached安装与用法

    memcached 简介在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下。
    2009-09-09
  • PHP文件上传判断file是否己选择上传文件的方法

    PHP文件上传判断file是否己选择上传文件的方法

    这篇文章主要介绍了PHP文件上传判断file是否己选择上传文件的方法,除了判断是否有上传的文件之外还对文件安全性进行了较为深入的分析,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • PHP中iconv函数知识汇总

    PHP中iconv函数知识汇总

    iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。本文内容是参考了网上的其他资源,然后结合自己的实践,有需要的小伙伴可以参考下。
    2015-07-07
  • PHP提供下载功能实现案例

    PHP提供下载功能实现案例

    这篇文章主要为大家介绍了PHP提供下载功能实现案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • PHP迭代器和生成器用法实例分析

    PHP迭代器和生成器用法实例分析

    这篇文章主要介绍了PHP迭代器和生成器用法,结合实例形式分析了PHP迭代器和生成器的相关概念、原理、应用技巧与使用注意事项,需要的朋友可以参考下
    2019-09-09
  • 微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解

    微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解

    这篇文章主要介绍了微信公众平台开发ThinkPHP框架下微信支付功能,结合图文形式详细分析了基于thinkPHP框架的微信支付功能实现步骤、操作技巧与相关注意事项,需要的朋友可以参考下
    2019-04-04
  • PHP 实现代码复用的一个方法 traits新特性

    PHP 实现代码复用的一个方法 traits新特性

    这篇文章主要介绍了PHP 实现代码复用的一个方法,traits的新特性的相关资料,需要的朋友可以参考下
    2015-02-02
  • php 文件上传系统手记

    php 文件上传系统手记

    说是手记,实际上整个程序已经写完了,虽然有点难看,但还行..毕竟是自己动手写得第一个程序...
    2009-10-10
  • PHP获取指定月份第一天和最后一天的方法

    PHP获取指定月份第一天和最后一天的方法

    这篇文章主要介绍了PHP获取指定月份第一天和最后一天的方法,涉及php针对日期操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论