injectcheck php_external/plugins/check_inject/main.plugin.php · water176142735/ECMOS - Gitee.com
/**
* 店铺地址简写插件
*
* @return array
*/
class Check_injectPlugin extends BasePlugin {
function execute() {
if (defined('IN_BACKEND') && IN_BACKEND === true) {
return; // 后台无需执行
} else {
$inject_flag = $this->check_inject(array($_REQUEST, $_COOKIE));
if ($inject_flag) {
exit('HACK ATTEMPEMT');
}
$this->script_tags();
}
}
function script_tags() {
$_REQUEST = $this->clear_html($_REQUEST);
$_GET = $this->clear_html($_GET);
$_POST = $this->clear_html($_POST);
$_COOKIE = $this->clear_html($_COOKIE);
}
function clear_html($code) {
if (!get_magic_quotes_gpc()) {
if (is_array($code)) {
foreach ($code as $key => $value) {
$code[$key] = addslashes($value);
$code[$key] = htmlentities($value);
$code[$key] = htmlspecialchars($value);
}
} else {
$code = addslashes($code);
$code = htmlentities($code);
$code = htmlspecialchars($code);
}
}
return $code;
}
function check_inject($params) {
if ($this->inject_flag) {return 1;}
if (is_array($params)) {
foreach ($params as $k => $v) {
if ($this->inject_flag != 1) {
$this->check_inject($v);
} else {
return 1;
}
}
} else {
return $this->inject_check($params) ? $this->inject_flag = 1 : 0;
}
}
function check_inject_str($str, $sql) {
$sql = strtolower($sql);
return !(strpos($sql, $str) === false);
}
function inject_check($sql_str) {
$sql_str = strtolower($sql_str);
$cond = include 'rules.php';
foreach ($cond as $c) {
$count = 0;
foreach ($c as $i) {
$this->check_inject_str($i, $sql_str) ? $count++ : null;
}
if ($count == count($c)) {
return 1;
}
}
return 0;
}
}
?>
一键复制
编辑
原始数据
按行查看
历史
injectcheck php_external/plugins/check_inject/main.plugin.php · water176142735/ECMOS - Gitee.com相关推荐
- pytest源码_pytest文档60pytest.main()的使用
前言 pytest 运行用例的时候,一般用命令行去执行,有些小伙伴不太习惯命令行运行用例,可能是之前深受 unittest 框架的影响,习惯在项目的根目录下写一个 run_all.py 的文件. 运行 ...
- pytest之执行测试pytest.main()的使用
前言 pytest 运行用例的时候,一般用命令行去执行,可能是之前深受 unittest 框架的影响,习惯在项目的根目录下写一个 run_all.py 的文件.[使用pytest测试框架一般使用pyt ...
- Chromium插件(Plugin)模块(Module)加载过程分析
在Chromium中,每一个Plugin都对应一个Module,称为Plugin Module.一个Plugin Module可创建多个Plugin Instance.每一个Plugin Instan ...
- Xamarin.IOS中MvvmCross的plugin使用方式
MvvmCross从4.0之后plugin的注册接口做了重构,网上例子不多,这里给个参考.本例子使用MvvmCross.Plugins.DownloadCache和MvvmCross.Plugins. ...
- Grafana plugins zabbix 安装
使用grafana-cli工具查看有效的插件: grafana-cli plugins list-remote 安装zabbix plugin grafana-cli plugins install ...
- Maven plugins和pluginManagement的区别概述
plugins 和 pluginManagement 的区别,和我们前面研究过的 dependencies 和 dependencyManagement 的区别是非常类似的.plugins 下的 pl ...
- Maven开发笔记(四)—— Maven中plugins和pluginManagement
From: https://www.jianshu.com/p/49acf1246eff 1.plugins和pluginManagement的区别概述 plugins 和 pluginManagem ...
- Maven 中 plugins 和 pluginManagement的区别
plugins 下的 plugin 是真实使用的,而 pluginManagement 下的 plugins 下的 plugin 则仅仅是一种声明,父项目是不能使用的,子项目中可以对 pluginMa ...
- Android Studio 3.5以后 Plugins中搜索不到flutter插件,本地无法安装??
android studio 中Plugins搜索不到插件??? 1,需要先查看AS的版本信息:Help->About: 2,选择合适的版本下载 3,在as中安装 Android Studio3 ...
最新文章
- ERP成分简介--听觉感觉反应
- autofac 作用域_控制作用域和生命周期
- php美化输入框代码,两句代码让你的zblogphp文章字段输入框加上ue编辑器功能
- 利用Python进行简单的图像识别(验证码)
- C语言 函数指针和指针函数区别 - C语言零基础入门教程
- java run里面定义变量_Java程序员50多道最热门的多线程和并发面试题(答案解析)...
- 虹软人脸识别在 linux中so文件加载不到的问题
- [转]Reporting Services 中的身份验证类型
- 相机的对焦是什么意思?为什么需要对焦?
- Google assisant 2018谷歌IO大会 谷歌助理背后的系统设计
- sitemap网站地图制作思路
- ruoyi默认的端口8080被占用,修改前后端端口号
- 冲刺IPO:Soul在深红市场打开的社交元宇宙
- ise17.4 版本的安装
- VMware 虚拟网卡防火墙问题
- 默燃周报|音乐流平台 Emanate 将启用 NFT;WAX NFT 数量突破一百万
- 2000个工作汇报PPT模板免费下载网站
- unity3d学习笔记-着色器(1.一些概念)
- MySQL删除索引的方式
- 大数据技术原理与应用作业四
热门文章
- 最新资讯|快手发布农产品消费趋势报告
- Quercus 介绍: 这个TMD对我太用了,终于在JAVA和PHP找到平衡点了
- 软件缺陷导致严重后果的典型案例
- 支线剧情-上下界网络流
- HTTP与HTTPS协议介绍
- VMware15内安装Ubuntu20.04系统教程
- 求一个季度有多少个星期以及这个季度中具体某天是星期几的方法
- UVALive - 3938 Ray, Pass me the dishes!
- 编程判断输入的字符串是否是回文串。其中判断字符串是否为回文串要用函数实现。
- Java实现登录功能(含修改密码 退出登录等)