机器屡次歹意提交进犯简略防备

访客5年前黑客工具702

 先说布景:机器不断的发送恳求或许歹意提交,会给服务器形成很大压力;针对这种进犯 更优的战略是判别提交次数,发生动态验证码 ,即 判别ip规则时刻内重复发送到达N次弹出验证码 。下面是小拽在实践进程中一个简略的辨认ip,使用session记载和防护的进程。

辨认和校验ip

进程如下;

辨认ip

ip归于白名单直接经过[白名单战略:内网ip+指定ip表]

使用session存储ip的恳求时刻戳

校验规则时刻内ip的恳求次数

采纳相应的办法

/**
 * 获取和校验ip;一起避免短时刻内屡次提交
 *
 * @notice        :弹出验证码,需求替换掉echo $echo_str 即可。
 * @return string :回来校验成功的ip
 */
protected function getAndCheckIP()
{

    // 获取环境ip
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
        $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
        $ip = getenv("REMOTE_ADDR");
    else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
        $ip = $_SERVER['REMOTE_ADDR'];
    else
        $ip = "unknown";

    // check 环境ip
    if (!$this->isWhiteList($ip)) {
        $echo_str = "提交过于频频,请稍后再试!";
        // 构建ip的时刻栈数据
        if (!is_array($_SESSION[$ip])) {
            $_SESSION[$ip] = array();
        }

        if (isset($_SESSION[$ip][0])) {
            $_SESSION[$ip][] = time();

            // session 保存时刻为6小时。整理session
            $post_interval_first = time() - $_SESSION[$ip][0];
            if ($post_interval_first > 21600) {
                $_SESSION[$ip] = array();
            }

            // 两次提交小于1s,制止提交
            $post_interval_pre = time() - $_SESSION[$ip][count($_SESSION[$ip]) - 3];
            if ($post_interval_pre < 1) {
                echo $echo_str;
                exit;
            };

            // 您在10s内现已提交了3恳求,制止提交
            $post_interval_third = time() - $_SESSION[$ip][count($_SESSION[$ip]) - 3];
            if (isset($_SESSION[$ip][3]) && ($post_interval_third < 10)) {
                echo $echo_str;
                exit;
            }

            // 您在1分钟期间现已提交了5恳求,制止提交
            $post_interval_fifth = time() - $_SESSION[$ip][count($_SESSION[$ip]) - 3];
            if (isset($_SESSION[$ip][5]) && ($post_interval_fifth < 60)) {
                echo $echo_str;
                exit;
            }

            // 6小时内提交10次,制止提交
            if (isset($_SESSION[$ip][10])) {
                echo $echo_str;
                exit;
            }
        } else {
            $_SESSION[$ip][] = time();
        }
    }

    return ($ip);
}

白名单战略

白名单战略选用:内网ip放行和特定ip放行

/**
 * 查验是否存在于白名单中
 *
 * @param $ip    :校验的ip
 * @return bool  :校验成果
 */
function isWhiteList($ip){
    /**
     * 内网ip默许悉数存在于白名单中
     */
    if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){
        return true;
    }

    // 是否在写死的whitelist 里边
    return in_array($ip,$this->_WHTTE_LIST);
}

防进犯战略

小拽选用的比较简略的战略,如上面代码,实践进程中能够结合事务需求。

1s内制止重复提交

5s内提交上限3次

60s内提交上限5次

6小时内提交上限10次

相关文章

空间技术网,怎么样找黑客盗取别人qq,旭旭宝宝dnf被骂找黑客

方针机:Windows server 2003 [172.16.12.2]总归,机器永久不会犯错,人会。 周末两天都在调理睡觉,恰逢 AliCTF 与 0ctf 的夺旗赛,其实我都快睡到周一了,惋惜下...

黑客改单接单_winrar文件密码破解

目录1、123456 (无变化) id; /* The id of the chunk, which either equals its pointer value or, when黑客改单接单,wi...

怎么编写自己的Web日志剖析脚本

由于平常总是触摸Web日志,可是苦于Web日志量大,windows下无法直接翻开,linux下又得一个一个的去找,太费事,算是偷闲,第一次用shell指令写这个剖析脚本,边写边改整理了将近1个星期,必...

电话号码出售,网络黑客高手专业微信黑客联系方式,找黑客帮忙魔域永恒

假如方针站点满意条件1和2,可是对方没有存储灵敏信息,也不能履行一些灵敏的操作。 那么装备不妥的crossdomain.xml也引起不了严峻的损害。 可是假如方针站点存在灵敏信息或许具有灵敏操作。 那...

解压码破解器_找黑客删除开房记录-满分记录可以找黑客清除吗

所谓的暴力破解,便是在不知道暗码的情况下,经过软件挨个暗码进行测验,然后最终将暗码破解出来。...

对于一个几岁的男人赌博被关半年回来了,欠好多

Windows Embedded Standard 2009 2.攻击者通过RDP向目标系统远程桌面服务发送精心设计的请求。 2019年6月,Microsoft发布了一条安全更新。 该更新针对CVE-...