Example #1
0
    }
}
if ($attackevasive & 8) {
    list($visitcode, $visitcheck, $visittime) = explode('|', authcode($_G['cookie']['visitcode'], 'DECODE'));
    if (!$visitcode || !$visitcheck || !$visittime || TIMESTAMP - $visittime > 60 * 60 * 4) {
        if (empty($_POST['secqsubmit']) || $visitcode != md5($_POST['answer'])) {
            $answer = 0;
            $question = '';
            for ($i = 0; $i < rand(2, 5); $i++) {
                $r = rand(1, 20);
                $question .= $question ? ' + ' . $r : $r;
                $answer += $r;
            }
            $question .= ' = ?';
            dsetcookie('visitcode', authcode(md5($answer) . '|0|' . TIMESTAMP, 'ENCODE'), TIMESTAMP + 816400, 1, true);
            securitymessage($question, '<input type="text" name="answer" size="8" maxlength="150" /><input type="submit" name="secqsubmit" class="button" value=" Submit " />', FALSE, TRUE);
        } else {
            dsetcookie('visitcode', authcode($visitcode . '|1|' . TIMESTAMP, 'ENCODE'), TIMESTAMP + 816400, 1, true);
        }
    }
}
function securitymessage($subject, $message, $reload = TRUE, $form = FALSE)
{
    global $_G;
    $scuritylang = array('attackevasive_1_subject' => '&#x9891;&#x7e41;&#x5237;&#x65b0;&#x9650;&#x5236;', 'attackevasive_1_message' => '&#x60a8;&#x8bbf;&#x95ee;&#x672c;&#x7ad9;&#x901f;&#x5ea6;&#x8fc7;&#x5feb;&#x6216;&#x8005;&#x5237;&#x65b0;&#x95f4;&#x9694;&#x65f6;&#x95f4;&#x5c0f;&#x4e8e;&#x4e24;&#x79d2;&#xff01;&#x8bf7;&#x7b49;&#x5f85;&#x9875;&#x9762;&#x81ea;&#x52a8;&#x8df3;&#x8f6c;&#x20;&#x2e;&#x2e;&#x2e;', 'attackevasive_2_subject' => '&#x4ee3;&#x7406;&#x670d;&#x52a1;&#x5668;&#x8bbf;&#x95ee;&#x9650;&#x5236;', 'attackevasive_2_message' => '&#x672c;&#x7ad9;&#x73b0;&#x5728;&#x9650;&#x5236;&#x4f7f;&#x7528;&#x4ee3;&#x7406;&#x670d;&#x52a1;&#x5668;&#x8bbf;&#x95ee;&#xff0c;&#x8bf7;&#x53bb;&#x9664;&#x60a8;&#x7684;&#x4ee3;&#x7406;&#x8bbe;&#x7f6e;&#xff0c;&#x76f4;&#x63a5;&#x8bbf;&#x95ee;&#x672c;&#x7ad9;&#x3002;', 'attackevasive_4_subject' => '&#x9875;&#x9762;&#x91cd;&#x8f7d;&#x5f00;&#x542f;', 'attackevasive_4_message' => '&#x6b22;&#x8fce;&#x5149;&#x4e34;&#x672c;&#x7ad9;&#xff0c;&#x9875;&#x9762;&#x6b63;&#x5728;&#x91cd;&#x65b0;&#x8f7d;&#x5165;&#xff0c;&#x8bf7;&#x7a0d;&#x5019;&#x20;&#x2e;&#x2e;&#x2e;');
    $subject = $scuritylang[$subject] ? $scuritylang[$subject] : $subject;
    $message = $scuritylang[$message] ? $scuritylang[$message] : $message;
    if ($_GET['inajax']) {
        security_ajaxshowheader();
        echo '<div id="attackevasive_1" class="popupmenu_option"><b style="font-size: 16px">' . $subject . '</b><br /><br />' . $message . '</div>';
        security_ajaxshowfooter();
if ($attackevasive & 2 && ($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_USER_AGENT_VIA'] || $_SERVER['HTTP_CACHE_INFO'] || $_SERVER['HTTP_PROXY_CONNECTION'])) {
    securitymessage('attachsave_2_subject', 'attachsave_2_message', FALSE);
}
if ($attackevasive & 4) {
    if (empty($_DCOOKIE['lastrequest']) || $timestamp - $_DCOOKIE['lastrequest'] > 60) {
        securitymessage('attachsave_4_subject', 'attachsave_4_message');
    }
}
if ($attackevasive & 8) {
    list($questionkey, $questionanswer, $questiontime) = explode('|', authcode($_DCOOKIE['secqcode'], 'DECODE'));
    include_once DISCUZ_ROOT . './forumdata/cache/cache_secqaa.php';
    if (!$questionanswer || !$questiontime || $_DCACHE['secqaa'][$questionkey]['answer'] != $questionanswer) {
        if (empty($_POST['secqsubmit']) || !empty($_POST['secqsubmit']) && $_DCACHE['secqaa'][$questionkey]['answer'] != md5($_POST['answer'])) {
            $questionkey = array_rand($_DCACHE['secqaa']);
            dsetcookie('secqcode', authcode($questionkey . '||' . $timestamp, 'ENCODE'), $timestamp + 816400);
            securitymessage($_DCACHE['secqaa'][$questionkey]['question'], '<input type="text" name="answer" size="8" maxlength="150" /><input class="button" type="submit" name="secqsubmit" value=" Submit " />', FALSE, TRUE);
        } else {
            dsetcookie('secqcode', authcode($questionkey . '|' . $_DCACHE['secqaa'][$questionkey]['answer'] . '|' . $timestamp, 'ENCODE'), $timestamp + 816400);
        }
    }
}
function securitymessage($subject, $message, $reload = TRUE, $form = FALSE)
{
    $scuritylang = array('attachsave_1_subject' => '&#x9891;&#x7e41;&#x5237;&#x65b0;&#x9650;&#x5236;', 'attachsave_1_message' => '&#x60a8;&#x8bbf;&#x95ee;&#x672c;&#x7ad9;&#x901f;&#x5ea6;&#x8fc7;&#x5feb;&#x6216;&#x8005;&#x5237;&#x65b0;&#x95f4;&#x9694;&#x65f6;&#x95f4;&#x5c0f;&#x4e8e;&#x4e24;&#x79d2;&#xff01;&#x8bf7;&#x7b49;&#x5f85;&#x9875;&#x9762;&#x81ea;&#x52a8;&#x8df3;&#x8f6c;&#x20;&#x2e;&#x2e;&#x2e;', 'attachsave_2_subject' => '&#x4ee3;&#x7406;&#x670d;&#x52a1;&#x5668;&#x8bbf;&#x95ee;&#x9650;&#x5236;', 'attachsave_2_message' => '&#x672c;&#x7ad9;&#x73b0;&#x5728;&#x9650;&#x5236;&#x4f7f;&#x7528;&#x4ee3;&#x7406;&#x670d;&#x52a1;&#x5668;&#x8bbf;&#x95ee;&#xff0c;&#x8bf7;&#x53bb;&#x9664;&#x60a8;&#x7684;&#x4ee3;&#x7406;&#x8bbe;&#x7f6e;&#xff0c;&#x76f4;&#x63a5;&#x8bbf;&#x95ee;&#x672c;&#x7ad9;&#x3002;', 'attachsave_4_subject' => '&#x9875;&#x9762;&#x91cd;&#x8f7d;&#x5f00;&#x542f;', 'attachsave_4_message' => '&#x6b22;&#x8fce;&#x5149;&#x4e34;&#x672c;&#x7ad9;&#xff0c;&#x9875;&#x9762;&#x6b63;&#x5728;&#x91cd;&#x65b0;&#x8f7d;&#x5165;&#xff0c;&#x8bf7;&#x7a0d;&#x5019;&#x20;&#x2e;&#x2e;&#x2e;');
    $subject = $scuritylang[$subject] ? $scuritylang[$subject] : $subject;
    $message = $scuritylang[$message] ? $scuritylang[$message] : $message;
    if ($_GET['inajax']) {
        ajaxshowheader();
        echo '<div id="attackevasive_1" class="popupmenu_option"><b style="font-size: 16px">' . $subject . '</b><br /><br />' . $message . '</div>';
        ajaxshowfooter();
    } else {