php 字符過濾類,用于過濾各類用戶輸入的數(shù)據(jù)
更新時(shí)間:2009年05月27日 01:22:50 作者:
最近老看到有人的網(wǎng)站被掛馬,發(fā)一個(gè)php的字符過濾類,建議廣大站長朋友們多關(guān)注下,安全方面的知識(shí)。
詳細(xì)代碼如下:
<?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(過濾注冊(cè)的用戶名)
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(過濾在線編輯器內(nèi)容)
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(); //定義實(shí)例
$downFile = $filter->filtit($_GET[´fn´]); //調(diào)用過濾方法
復(fù)制代碼 代碼如下:
<?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(過濾注冊(cè)的用戶名)
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(過濾在線編輯器內(nèi)容)
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);
}
}
?>
使用方法如:
復(fù)制代碼 代碼如下:
$filter = new FileNameFilter(); //定義實(shí)例
$downFile = $filter->filtit($_GET[´fn´]); //調(diào)用過濾方法
相關(guān)文章
php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法
這篇文章主要介紹了php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法,涉及php數(shù)組轉(zhuǎn)json傳遞到j(luò)avascript的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP curl CURLOPT_RETURNTRANSFER參數(shù)的作用使用實(shí)例
這篇文章主要介紹了PHP curl CURLOPT_RETURNTRANSFER參數(shù)的作用使用實(shí)例,CURLOPT_RETURNTRANSFER參數(shù)的作用是把CRUL獲取的內(nèi)容賦值到變量,需要的朋友可以參考下2015-02-02php上傳文件并存儲(chǔ)到mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了php上傳文件并存儲(chǔ)到mysql數(shù)據(jù)庫的方法,以完整實(shí)例形式較為詳細(xì)的分析了php操作文件上傳與數(shù)據(jù)庫存儲(chǔ)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03php中http_build_query 的一個(gè)問題
http_build_query 遠(yuǎn)程攻擊者可以利用漏洞獲得敏感內(nèi)存信息。請(qǐng)大家謹(jǐn)慎使用2012-03-03用mysql觸發(fā)器自動(dòng)更新memcache的實(shí)現(xiàn)代碼
不錯(cuò)的一篇文章,用于項(xiàng)目中可以帶來更多的便利,按照方法已經(jīng)調(diào)試成功,可以大大提高項(xiàng)目的速度。2009-10-10