Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Насколько надежна такая проверка логина/пароля? 
:(
    Опции темы
Coder
Дата 15.10.2008, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Код

// функция проверяет логин и пароль 
// если они подходят к БД с правами администратора, то возвращает true

function register_user($what_check,$_user,$_pass,$write_allow){

    session_start();

    if ($what_check==="sess"){ // проверить пароль из сессии
        if (!isset($_SESSION["user"]) || !isset($_SESSION["pwd"])){
            write_to_ip_table("","nil-data");
            return false;
        }
        $user_name    = mysql_escape_string($_SESSION["user"]);
        $user_pwd    = mysql_escape_string($_SESSION["pwd"]);
    }
    elseif ($what_check==="post") { // проверить пароль из пост данных
        if (!isset($_POST["user"]) || !isset($_POST["pwd"])){
            write_to_ip_table("","nil-data");
            return false;
        }
        $user_name=mysql_escape_string($_POST["user"]);
        $user_pwd=md5($_POST["pwd"]);
    }
    elseif ($what_check==="param") { // данные для проверки взять из параметров
        $user_name=mysql_escape_string($_user);
        $user_pwd=md5($_pass);
    }
    else
        return false; // не правильно вызвана функция
    
    // пробиваем по БД
    include ("vars.php");
    $link = mysql_connect($loc_host, $loc_user, $loc_pass) or die(mysql_error()." 3");
    mysql_select_db($loc_base);
    $query = "SELECT id FROM nv_users WHERE(login='".$user_name."' && pwd='".$user_pwd."' && admin=1)";
    $result = mysql_query($query);
    $rows=mysql_num_rows($result);
    mysql_close($link);
    if ($rows!=1){
        write_to_ip_table($user_name,"adm-deny");
        return false;
    }
    if ($write_allow)
        write_to_ip_table($user_name,"adm-allow");
    
    return true;
}


В начале каждой странички, которая должна быть доступна только администратору размещается такой код:
Код

    if (!register_user('sess','','',false)){
        header("Location: /quit.html");
        exit;
    }


Насколько надежен такой код? Есть ли тут подводные камни?
PM MAIL   Вверх
bars80080
Дата 15.10.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



заместо mysql_escape_string - mysql_real_escape_string


у тебя при при переходе постраницам постоянно идёт запрос в БД на авторизацию?
PM MAIL WWW   Вверх
Coder
Дата 15.10.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



bars80080, да. 

Добавлено @ 09:07
Мне кажется, что так надежней, чем просто устанавливать флаг - доступ разрешен.

Это сообщение отредактировал(а) Coder - 15.10.2008, 09:08
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.