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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация пользователя, Посмотрите пожалуйста 
V
    Опции темы
LKamikadze
Дата 10.5.2009, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Посмотрите пжалуйста является ли мой код безопасным?
Код

function login(){
    global $db, $tpl, $pr, $ucheck;
    $cookie = new Cookie("user_cookie");
    session_start();
    if(isset($_SESSION['attempt_of_entry']) && intval($_SESSION['attempt_of_entry']) > 6){
        err("Большое количество неверных вхождений!");
    }
    $uname = parser($_POST['uname']);
    $pass = parser($_POST['pass']);
    if($uname == "" or $pass == ""){
        err("Вы оставили пустое поле или поля!");
    }
    $pass = md5(md5($pass));
    $ip = $ucheck->ip();
    list($email) = $db->upquery("SELECT email FROM users where uname = '$uname' and pass = '$pass'"); //проверка на правильность + извлечение email
    if($email){
        $cookie->addset("username", $uname);
        $cookie->addset("userpass", $pass);
        $cookie->addset("usermail", $email);
        $cookie->set();
        header("Location: index.php?mod=users");
    }else{
        if(!isset($_SESSION['attempt_of_entry'])){
            $_SESSION['attempt_of_entry'] = 1;
        }else{
            $_SESSION['attempt_of_entry']++;
        }
        err("Неверно введены логин/пароль!");
    }
}


Если нет то как тут что можно подправить
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Да
PM MAIL ICQ Skype   Вверх
LKamikadze
Дата 10.5.2009, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(enof @ 10.5.2009,  03:38)
Да

Да это означает что безопасный или да то что можно подправить его или нужно
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



У меня gst валится с ошибкой сегментирования при попытке добавить метод, помоги, а? а не то я уже себе весь мозг сломал.

Вот и я не знаю, че это за код у тебя. parser() в студию.
PM MAIL ICQ Skype   Вверх
Ful
Дата 10.5.2009, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Опасностью вроде не пахнет.
PM MAIL WWW   Вверх
LKamikadze
Дата 10.5.2009, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(enof @ 10.5.2009,  03:53)
У меня gst валится с ошибкой сегментирования при попытке добавить метод, помоги, а? а не то я уже себе весь мозг сломал.

Вот и я не знаю, че это за код у тебя. parser() в студию.

Функция parser парсит только ввод нежелательных символов в поля.
А так-же html, и других тегов
PM MAIL WWW ICQ Skype   Вверх
Ful
Дата 10.5.2009, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может быть getText() проще применить..?
PM MAIL WWW   Вверх
LKamikadze
Дата 10.5.2009, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Ful @ 10.5.2009,  04:00)
Может быть getText() проще применить..?

C gettext не стал заморачиватся и все сделал в один класс.
Чтобы не нагружать систему
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Цитата(LKamikadze @  10.5.2009,  04:59 Найти цитируемый пост)
Функция parser парсит только ввод нежелательных символов в поля.

ааааа smile 
Код в студию. В этой функции и заключается вся безопасность. Сразу скажу, что написано через ***у.
Цитата(LKamikadze @  10.5.2009,  04:27 Найти цитируемый пост)
intval($_SESSION['attempt_of_entry'])

Ну ниче так, оригинально.
Цитата(LKamikadze @  10.5.2009,  04:27 Найти цитируемый пост)
        $cookie->addset("userpass", $pass);

пароль в куках в открытом виде лучше не хранить.

Это все, что я могу сказать на данный момент.
PM MAIL ICQ Skype   Вверх
LKamikadze
Дата 10.5.2009, 04:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



по поводу функции parser я на 100 % уверен что она безопасна
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Цитата(LKamikadze @  10.5.2009,  05:08 Найти цитируемый пост)
по поводу функции parser я на 100 % уверен что она безопасна 

Если вы уверены, то зачем создали топик?
Цитата(bars80080 @  9.5.2009,  12:23 Найти цитируемый пост)

1. при работе с БД нужно все данные пришедшие от пользователя пропускать через mysql_real_escape_string()
и это панацея, больше ничего не требуется, а даже вредно

2. при выводе данных в браузер, тех что были когда-то введены пользователем, то надо использовать htmlspecialchars()
и это панацея, уничтожит все тэги и кавычки, преобразует их в html-сущности

уж столько это раз все говорили. Всего лишь запомнить ДВЕ(три, еще intval) и порядок применения, и все, xss и скули не страшны.
Перед записью в базу экранировать, перед выводом преобразовать htmlspecialchars(). Перед записью в базу этого делать не надо! Хотя бы потому, что вам потом вдруг понадобятся данные, а они со всякими < " и т.д. А они вне браузера нафиг не нужны и только все портят.

Добавлено через 47 секунд
Если не сложно, ответьте на вопрос. Вот вы такой весь модный, ООП, классы, методы, а нафига они вам именно здесь?
PM MAIL ICQ Skype   Вверх
LKamikadze
Дата 10.5.2009, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно закрывать тему.
Все понял.
Разъяснили. Спасибо
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



ааа smile мой вопрос останется без ответа?
PM MAIL ICQ Skype   Вверх
LKamikadze
Дата 10.5.2009, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(enof @ 10.5.2009,  04:23)
ааа smile мой вопрос останется без ответа?

У меня в функции идет именно htmlspecialchars().
Но для для других модулей и она подключается немного по другому.
Вот я и не стал делать множество одного и того-же, а все включил в одно.
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 04:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Цитата(enof @  10.5.2009,  05:13 Найти цитируемый пост)
Если не сложно, ответьте на вопрос. Вот вы такой весь модный, ООП, классы, методы, а нафига они вам именно здесь? 

я вот это имел ввиду.
Цитата(LKamikadze @  10.5.2009,  05:34 Найти цитируемый пост)
У меня в функции идет именно htmlspecialchars().

при записи в базу не нужно этого делать, ну да ладно.
PM MAIL ICQ Skype   Вверх
LKamikadze
Дата 10.5.2009, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот сама функция
Код

function parser($sources = '', $bb = 0, $strip_tags = 0, $substr = 0){
    global $db;
    $par = new Parser();
    if (get_magic_quotes_gpc()) {
        $sources = stripslashes($sources);
    }
    if($strip_tags == 1){
        $sources = strip_tags($sources);
    }
    if($bb == 1){
        $sources = $par->bb2html($sources);
    }
    if($substr != 0){
        $sources = substr($sources, 0, $substr);
    }
    $sources = $par->bbxss($sources);
    $sources = $db->shield($sources);
    return $sources;
}

+ дополнительно подключается класс
PM MAIL WWW ICQ Skype   Вверх
enof
Дата 10.5.2009, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Нормально все, другое дело, что немного криво все это.
Я вас вообще про другой спрашивал. Про ООП, например класс для работы с куками(надо же додуматься) smile  smile 
Чтобы работать с куками нужно писать больше букв, чем без всяких классов, плюс время на разработку никому не нужного класса.
И ради чего?

ладно, я спать, а не то утро уже.
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 10.5.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(LKamikadze @  10.5.2009,  02:27 Найти цитируемый пост)
 $cookie->addset("username", $uname);
        $cookie->addset("userpass", $pass);
        $cookie->addset("usermail", $email);

Это вы в куках храните пароль и мыло?
PM WWW Skype   Вверх
enof
Дата 10.5.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



Цитата(enof @  10.5.2009,  05:03 Найти цитируемый пост)

пароль в куках в открытом виде лучше не хранить.

Цитата(SneG0K @  10.5.2009,  10:07 Найти цитируемый пост)

Это вы в куках храните пароль и мыло?

 smile 
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 10.5.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Вы бы в куках еще код от сейфа хранили, ну так, для большей безопастности
PM WWW Skype   Вверх
LKamikadze
Дата 10.5.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(SneG0K @ 10.5.2009,  17:12)
Вы бы в куках еще код от сейфа хранили, ну так, для большей безопастности

И каким образом хранить пароли и мыла в куках в закрытом виде. как изменить что?
PM MAIL WWW ICQ Skype   Вверх
SneG0K
Дата 11.5.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(LKamikadze @  10.5.2009,  21:45 Найти цитируемый пост)
как изменить что? 

Удалить нафиг этот кривой класс... Использовать сессии
1)во первых - это отстранит от проблем переизбытка информации в куке
2) Данные авторизации на сервере
3) Более безопасно
PM WWW Skype   Вверх
enof
Дата 11.5.2009, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



SneG0K, smile в куках хранить пароль, мыло, ник и т.д. не в открытом виде и все.
Ну вот что-то типа такого:
Код

if(isset($_SESSION['login']))
{
    //Пользователь авторизован.
}
else
{
    //Пользователь не авторизован, смотрим куки.
    if(check_cookie())
    {
        //Если в куках есть верные имя пароль, ставим метку в сессию.
        $_SESSION['login'] = $login;
    }
    else
    {
        //Пользователь не авторизован
    }
}

В куках хранить какую-нибудь закодированную строку, из которой потом можно выудить логин и пароль.
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 11.5.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



enof, максимальный размер куков какой? - Правильно 4 кб... Так лучше хранить идентификатор на сессию, чем имя пользователя + пароль + мыло + еще какие-то данные (а вдруг не хватит памяти ). Причем, если автор не будет проверять эти самые логин и пароль - то это уже дыра в безопасности...

Добавлено через 1 минуту и 10 секунд
А идентификатор можно даже не проверять... Даже если туда левой фигни всунуть, то PHP просто не отдаст сессию.
PM WWW Skype   Вверх
enof
Дата 11.5.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 30
Всего: 35



SneG0K, блин, ты выше мой код видел? Куки всего лишь реализует кнопочку "Запомнить", а сессии уже после авторизации.
PM MAIL ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0766 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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