检测过滤get或post接收值类
来源:互联网 发布:听书软件排行 编辑:程序博客网 时间:2024/06/04 19:54
<?php
class classMySec {
function encode($data) {
if (is_array($data)) return array_map(array($this,'encode'), $data);
if (is_object($data)) {
$tmp = clone $data; // avoid modifing original object
foreach ( $data as $k => $var ) $tmp->{$k} = $this->encode($var);
return $tmp;
}
return htmlentities($data);
}
function decode($data) {
if (is_array($data)) return array_map(array($this,'decode'), $data);
if (is_object($data)) {
$tmp = clone $data; // avoid modifing original object
foreach ( $data as $k => $var ) $tmp->{$k} = $this->decode($var);
return $tmp;
}
return html_entity_decode($data);
}
}
########## Base variables ##########
# SET VAR
$argv = array();
$argv = array_map('c_sec_userinput', $argv);
$_GET = array_map('c_sec_userinput', $_GET);
$_POST = array_map('c_sec_userinput', $_POST);
$_COOKIE = array_map('c_sec_userinput', $_COOKIE);
$_REQUEST = array_map('c_sec_userinput', $_REQUEST);
function c_sec_userinput($input){
if(!isset($input)) return;
$search = array("\\", "\x00", "\x1a", "||", "$");
$replace = array("\\\\","\\0", "\\Z", "", "");
if(is_array($input)){
foreach ($input as $key => $value){
if(get_magic_quotes_gpc()) $return[$key] = str_replace($search, $replace, stripslashes(c_sec_safe($value)));
else $return[$key] = str_replace($search, $replace, c_sec_safe($value));
}
return $return;
}else{
if(get_magic_quotes_gpc()) return str_replace($search, $replace, stripslashes(c_sec_safe($input)));
else return str_replace($search, $replace, c_sec_safe($input));
}
}
function c_sec_safe($str){
if(!isset($str))return;
$class = new classMySec();
$decode = $class->decode($str);
if(preg_match('/(<\s*SCRIPT|SCRIPT\s*>)/i', $decode)) return;
if(preg_match('/(<\s*IFRAME|IFRAME\s*>)/i', $decode)) return;
if(preg_match('/(UNION|SELECT|CONCAT|DELETE|INSERT|DROP|FROM|WHERE) /i', $decode)) return;
if(preg_match('/(UNION|SELECT|CONCAT|DELETE|INSERT|DROP|FROM|WHERE)\(/i', $decode)) return;
if(preg_match('/\/\*/i', $decode)) return;
if(preg_match('/\-\-/i', $decode)) return;
return $str;
}
?>
class classMySec {
function encode($data) {
if (is_array($data)) return array_map(array($this,'encode'), $data);
if (is_object($data)) {
$tmp = clone $data; // avoid modifing original object
foreach ( $data as $k => $var ) $tmp->{$k} = $this->encode($var);
return $tmp;
}
return htmlentities($data);
}
function decode($data) {
if (is_array($data)) return array_map(array($this,'decode'), $data);
if (is_object($data)) {
$tmp = clone $data; // avoid modifing original object
foreach ( $data as $k => $var ) $tmp->{$k} = $this->decode($var);
return $tmp;
}
return html_entity_decode($data);
}
}
########## Base variables ##########
# SET VAR
$argv = array();
$argv = array_map('c_sec_userinput', $argv);
$_GET = array_map('c_sec_userinput', $_GET);
$_POST = array_map('c_sec_userinput', $_POST);
$_COOKIE = array_map('c_sec_userinput', $_COOKIE);
$_REQUEST = array_map('c_sec_userinput', $_REQUEST);
function c_sec_userinput($input){
if(!isset($input)) return;
$search = array("\\", "\x00", "\x1a", "||", "$");
$replace = array("\\\\","\\0", "\\Z", "", "");
if(is_array($input)){
foreach ($input as $key => $value){
if(get_magic_quotes_gpc()) $return[$key] = str_replace($search, $replace, stripslashes(c_sec_safe($value)));
else $return[$key] = str_replace($search, $replace, c_sec_safe($value));
}
return $return;
}else{
if(get_magic_quotes_gpc()) return str_replace($search, $replace, stripslashes(c_sec_safe($input)));
else return str_replace($search, $replace, c_sec_safe($input));
}
}
function c_sec_safe($str){
if(!isset($str))return;
$class = new classMySec();
$decode = $class->decode($str);
if(preg_match('/(<\s*SCRIPT|SCRIPT\s*>)/i', $decode)) return;
if(preg_match('/(<\s*IFRAME|IFRAME\s*>)/i', $decode)) return;
if(preg_match('/(UNION|SELECT|CONCAT|DELETE|INSERT|DROP|FROM|WHERE) /i', $decode)) return;
if(preg_match('/(UNION|SELECT|CONCAT|DELETE|INSERT|DROP|FROM|WHERE)\(/i', $decode)) return;
if(preg_match('/\/\*/i', $decode)) return;
if(preg_match('/\-\-/i', $decode)) return;
return $str;
}
?>
0 0
- 检测过滤get或post接收值类
- 应用HttpWebRequest接收post或get数据
- Servlet的post、get接收
- PHP过滤POST,GET敏感数据
- PHP过滤post,get敏感数据
- SpringMVC Controller接收前台ajax的GET或POST请求返回各种参数
- SpringMVC Controller接收前台ajax的GET或POST请求返回各种参数
- Java发起GET/POST请求,接收或发送URL中的数据的问题
- retrofit2.0中使用okHTTP post get put 过滤请求内容或添加内容
- MVC接收post提交的值检测到危险
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- 发送post或get请求
- 发送GET或POST请求
- 何时选择get或post
- PHP接收GET和POST请求
- c#发送和接收get,post消息
- C#post、get发送并且接收数据
- node接收get与post请求
- android解析XML总结(SAX、Pull、Dom三种方式)
- 辗转相除将分数化为连分数形式
- 计算机编码简单总结
- 使用lua语言做高并发限流
- Java工具类——全角半角字符相互转换
- 检测过滤get或post接收值类
- 前端手型标示按钮
- android数据保存之SharedPreferences
- Swift - 利用UIScrollView 实现轮播图
- 二分查找法---java实现
- flask学习笔记(-数据库)
- cocos 单循环-按钮列表位置摆放
- 文本搜索(C实现)
- Java工具类——把金额转换成汉字大写金额