示例#1
0
文件: auth.php 项目: bonvio-opr/CMS
     exit;
 }
 //проверяем среди простых смертных
 if ($token and $_POST['pwd']) {
     //необычный логин
     //вытащили всех
     $sql = "SELECT * FROM `mandarinko_admins`";
     $r = mysql_query($sql);
     for ($data = array(); $row = mysql_fetch_assoc($r); $data[] = $row) {
     }
     //проверяем, совпадет ли хоть с кем-нибудь
     foreach ($data as $el) {
         $cnt = $el['token_cnt'];
         $secret = $el['token_seed'];
         $pass = $_POST['pwd'];
         $hotp = new cHotp();
         $cur_cnt = $hotp->authOTP($secret, $pass, $cnt, $token);
         if ($cur_cnt) {
             //зашли, круто, блин
             $loggedin['asuser'] = $el['id'];
             $cnt = $cur_cnt;
             break;
         }
     }
     if ($loggedin['asuser']) {
         //обновили пользователю счетчик в базе, все довольны и машут флажками
         $sql = "UPDATE `mandarinko_admins` SET `token_cnt` = '" . $cnt . "' WHERE `id` = '" . $el['id'] . "'";
         mysql_query($sql);
     }
 }
 if ($loggedin['asuser'] || ($_POST['login'] and $_POST['pwd'])) {
示例#2
0
<?php

if ($_POST['savestatic']) {
    if ($_POST['seed'] && $_POST['cnt'] && $_POST['number']) {
        $seed = mysql_real_escape_string($_POST['seed']);
        $cnt = mysql_real_escape_string($_POST['cnt']) - 2;
        $hotp = new cHotp();
        $cur_cnt = $hotp->authOTP($seed, $_POST['number'], $cnt, $admin_data['tokenAuth']);
        if (!$cur_cnt) {
            $ERROR[] = 'Введеные для токена данные неверны. Система категорически отказывается что-либо делать при таком раскладе.';
        }
    }
    foreach ($_POST['right'] as $k => $el) {
        if ($el == 'on') {
            $RIGHTS[] = $k;
        }
    }
    $RIGHTS = implode(',', $RIGHTS);
    if (strlen($_POST['pwd']) > 1) {
        $newpwd = "`pass`   = '" . mysql_real_escape_string($_POST['pwd']) . "',";
    }
    if ($seed && $cnt) {
        $newtoken = "`token_seed`='" . $seed . "', `token_cnt`='" . $cur_cnt . "',";
    }
    if (!$ERROR) {
        $sql = "UPDATE `mandarinko_admins` SET\n\t\t\t" . $newtoken . "\n\t\t\t" . $newpwd . "\r\n\t\t\t`rights` = '" . $RIGHTS . "'\n\t\tWHERE `id`= '" . mysql_real_escape_string($_GET['edit']) . "'";
        mysql_query($sql) or die('DB ERROR: CAN\'T UPDATE ADMIN');
        header('Location: /' . $URL[1] . '/' . $URL[2] . '/' . $URL[3]);
        exit;
    }
}
示例#3
0
<?php

if ($_GET['pwd'] && $_GET['token']) {
    include $_SERVER['DOCUMENT_ROOT'] . '/_config.php';
    include $_SERVER['DOCUMENT_ROOT'] . '/admin/inc/hotp.class.php';
    $admin_seeds = explode("\r", file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/control/tokens'));
    foreach ($admin_seeds as $k => $el) {
        $admin_seeds[$k] = trim($el);
    }
    $sql = "SELECT `value` FROM `mandarinko_base` WHERE `param`='admin_cnt1' OR `param`='admin_cnt2'";
    $r = mysql_query($sql);
    for ($data = array(); $row = mysql_fetch_assoc($r); $data[] = $row) {
    }
    $hotp = new cHotp();
    foreach ($admin_seeds as $k => $el) {
        $cur = $k + 1;
        //какой админ
        $cur_cnt = $hotp->authOTP($el, $_GET['pwd'], $data[$k]['value'], $_GET['token']);
        if ($cur_cnt) {
            //зашли под админом
            $loggedin['asadmin'] = $cur;
            $cnt = $cur_cnt;
            break;
        }
    }
    if ($loggedin['asadmin']) {
        //обновили ему счетчик в базе
        $sql = "UPDATE `mandarinko_base` SET `value`='" . $cnt . "' WHERE `param`='admin_cnt" . $loggedin['asadmin'] . "'";
        mysql_query($sql);
    }
    echo $loggedin['asadmin'];