/**

* 店铺地址简写插件

*

* @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. %02 java_02-java
  2. C++宏定义中#与##的妙用
  3. 将模板方法模式应用到kmeans聚类算法
  4. Linux 命令之 dpkg --Debian 的一个底层包管理工具
  5. kotlin android 镜像,【54】Kotlin android Anko 神兵利器
  6. 一个简单的Java EEDocker示例
  7. Java编程风格与命名规范整理(转载)
  8. 51单片机入门——DS18B20
  9. 校园网系统集成方案设计
  10. servlet中session的使用
  11. 用计算机刻盘,用电脑可以刻录光盘吗?
  12. php视图编辑,word中最适合查看编辑排版效果的视图是什么
  13. 明翰英语教学系列之雅思口语篇V0.2(持续更新)
  14. sklearn笔记29 线性回归 天猫双十一销量预测
  15. 国外服务器使用CDN加速怎么样
  16. PAT_乙级_1006_筱筱
  17. STM32 cube vcp虚拟USB
  18. Elo Rating System 简介及其在游戏中的运用
  19. 在vue中实现picker样式_vue中van-picker的多列联动数据格式如何设置以及调用
  20. MATLAB中删除矩阵或向量中Nan数据

热门文章

  1. 【27】SIMD:如何加速矩阵乘法?
  2. 概率论考点总结类型17 由f(x,y)求F(x,y)
  3. 对广域网和局域网区别的了解与认识报告
  4. python中val是什么意思_如何处理Python单个val和val列表?
  5. 易康eCognition Developer 9.01安装教程(附eCognition下载地址及中文教程)
  6. 【从0到1】GD32F450+LAN8720+LWIP(裸机)移植过程记录
  7. Qt版Word文字处理软件
  8. 游戏特效有哪些制作的分类
  9. Linux入门:权限管理之粘滞位
  10. 角速率随机游走—笔记