• zencart安全辅助小脚本


    在includes/application_top.php最后一行加入
    require('fish.php');

    将下面代码保存为fish.php

    <?php
    function customError($errno, $errstr, $errfile, $errline)
    {
     echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />";
     die();
    }
    set_error_handler("customError",E_ERROR);
    $getfilter="'|(and|or)\b.+?(>|<|=|in|like)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
    $postfilter="\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
    $cookiefilter="\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
    function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){
       
    if(is_array($StrFiltValue))
    {
     $StrFiltValue=implode($StrFiltValue);
    }
    if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1&&!isset($_REQUEST['securityToken'])){
     slog("<br><br>操作IP: ".$_SERVER["REMOTE_ADDR"]."<br>操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."<br>操作页面:".$_SERVER["PHP_SELF"]."<br>提交方式: ".$_SERVER["REQUEST_METHOD"]."<br>提交参数: ".$StrFiltKey."<br>提交数据: ".$StrFiltValue);
     print "result notice:Illegal operation!";
     exit();
    }
    }
    //$ArrPGC=array_merge($_GET,$_POST,$_COOKIE);
    foreach($_GET as $key=>$value){
     StopAttack($key,$value,$getfilter);
    }
    foreach($_POST as $key=>$value){
     StopAttack($key,$value,$postfilter);
    }
    foreach($_COOKIE as $key=>$value){
     StopAttack($key,$value,$cookiefilter);
    }
       
    function slog($logs)
    {
     $toppath="zc_hack_log.htm";
     $Ts=fopen($toppath,"a+");
     fputs($Ts,$logs."
    ");
     fclose($Ts);
    }
    ?>

    日志保存在zc_hack_log.htm

    转载请注明出处!小鱼阁工作室 -专注zencart建站,织梦企业建站,ecshop商城,二次开发,产品采集,模板修改!技术QQ 631992791
  • 相关阅读:
    CSAPP阅读笔记-struct, union, 数据对齐-来自第三章3.9的笔记-P183-P191
    CSAPP阅读笔记-数组分配与访问-来自第三章3.8的笔记-P176-P183
    深入理解静态方法和实例化方法的区别
    通俗讲解静态方法和实例方法的区别
    ArcGis中的类模型图目录
    C++ Primer(第四版) 课后习题6.8 统计空格制表符换行的数目
    C++ Primer(第四版) 课后习题4.30
    string类sizeof大小
    C++ Primer(第四版) 课后习题4.18
    C++ Primer(第四版) 课后习题3.14 vector单词转大写
  • 原文地址:https://www.cnblogs.com/afish/p/3924808.html
Copyright © 2020-2023  润新知