/**

* 店铺地址简写插件

*

* @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相关推荐

  1. pytest源码_pytest文档60pytest.main()的使用

    前言 pytest 运行用例的时候,一般用命令行去执行,有些小伙伴不太习惯命令行运行用例,可能是之前深受 unittest 框架的影响,习惯在项目的根目录下写一个 run_all.py 的文件. 运行 ...

  2. pytest之执行测试pytest.main()的使用

    前言 pytest 运行用例的时候,一般用命令行去执行,可能是之前深受 unittest 框架的影响,习惯在项目的根目录下写一个 run_all.py 的文件.[使用pytest测试框架一般使用pyt ...

  3. Chromium插件(Plugin)模块(Module)加载过程分析

    在Chromium中,每一个Plugin都对应一个Module,称为Plugin Module.一个Plugin Module可创建多个Plugin Instance.每一个Plugin Instan ...

  4. Xamarin.IOS中MvvmCross的plugin使用方式

    MvvmCross从4.0之后plugin的注册接口做了重构,网上例子不多,这里给个参考.本例子使用MvvmCross.Plugins.DownloadCache和MvvmCross.Plugins. ...

  5. Grafana plugins zabbix 安装

    使用grafana-cli工具查看有效的插件: grafana-cli plugins list-remote 安装zabbix plugin grafana-cli plugins install ...

  6. Maven plugins和pluginManagement的区别概述

    plugins 和 pluginManagement 的区别,和我们前面研究过的 dependencies 和 dependencyManagement 的区别是非常类似的.plugins 下的 pl ...

  7. Maven开发笔记(四)—— Maven中plugins和pluginManagement

    From: https://www.jianshu.com/p/49acf1246eff 1.plugins和pluginManagement的区别概述 plugins 和 pluginManagem ...

  8. Maven 中 plugins 和 pluginManagement的区别

    plugins 下的 plugin 是真实使用的,而 pluginManagement 下的 plugins 下的 plugin 则仅仅是一种声明,父项目是不能使用的,子项目中可以对 pluginMa ...

  9. Android Studio 3.5以后 Plugins中搜索不到flutter插件,本地无法安装??

    android studio 中Plugins搜索不到插件??? 1,需要先查看AS的版本信息:Help->About: 2,选择合适的版本下载 3,在as中安装 Android Studio3 ...

最新文章

  1. ERP成分简介--听觉感觉反应
  2. autofac 作用域_控制作用域和生命周期
  3. php美化输入框代码,两句代码让你的zblogphp文章字段输入框加上ue编辑器功能
  4. 利用Python进行简单的图像识别(验证码)
  5. C语言 函数指针和指针函数区别 - C语言零基础入门教程
  6. java run里面定义变量_Java程序员50多道最热门的多线程和并发面试题(答案解析)...
  7. 虹软人脸识别在 linux中so文件加载不到的问题
  8. [转]Reporting Services 中的身份验证类型
  9. 相机的对焦是什么意思?为什么需要对焦?
  10. Google assisant 2018谷歌IO大会 谷歌助理背后的系统设计
  11. sitemap网站地图制作思路
  12. ruoyi默认的端口8080被占用,修改前后端端口号
  13. 冲刺IPO:Soul在深红市场打开的社交元宇宙
  14. ise17.4 版本的安装
  15. VMware 虚拟网卡防火墙问题
  16. 默燃周报|音乐流平台 Emanate 将启用 NFT;WAX NFT 数量突破一百万
  17. 2000个工作汇报PPT模板免费下载网站
  18. unity3d学习笔记-着色器(1.一些概念)
  19. MySQL删除索引的方式
  20. 大数据技术原理与应用作业四

热门文章

  1. 最新资讯|快手发布农产品消费趋势报告
  2. Quercus 介绍: 这个TMD对我太用了,终于在JAVA和PHP找到平衡点了
  3. 软件缺陷导致严重后果的典型案例
  4. 支线剧情-上下界网络流
  5. HTTP与HTTPS协议介绍
  6. VMware15内安装Ubuntu20.04系统教程
  7. 求一个季度有多少个星期以及这个季度中具体某天是星期几的方法
  8. UVALive - 3938 Ray, Pass me the dishes!
  9. 编程判断输入的字符串是否是回文串。其中判断字符串是否为回文串要用函数实现。
  10. Java实现登录功能(含修改密码 退出登录等)