![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| FlameTH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Я использую эту структуру давно, но в последнее время начал сомневаться в ее безопасности. Проверьте плз код и укажите на недочеты. А то на душе не спокойно =)))
Этот скрипт инклюдится в основной, как проверка авторизации и ее выполнения.
|
|||
|
||||
| sabian |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 4.7.2007 Где: Воронеж Репутация: нет Всего: нет |
Ну вроде как sql-инъекция на лицо. $_POST['login'] вроде нигде не проверяется никак и не очищается.Зловредный хацкер может это использовать
|
|||
|
||||
| FlameTH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Тоесть мне нужно добавить проверку на источник $_POST['admin_login'] ?
|
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
FlameTH, sql injection премо напрашивается
да и лучше не isset($var) a юзать !empty. -------------------- ![]() ![]() |
|||
|
||||
| sabian |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 4.7.2007 Где: Воронеж Репутация: нет Всего: нет |
Вообще, когда что либо получаете от пользователей, лучше это очень тщательно проверять. Для начала прочтите это |
|||
|
||||
| FlameTH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Ясно. Первые два шага, которые нужно выполнить это:
1) Проверить поля и саму сессию на пустое значение. 2) Экранировать спец.символы. Это уже неплохо обезопасит. Еще что посоветуете? |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
не просто на пустое! А например от 3 до 15 символов + только буквы и цифры например. Это еще нужно, чтобы адекватно ответить пользователю если он случайно вписал недопустимые символы. (предупреждение о конкретной ошибке, а не просто слово "ошибка", которая почти не несет в себе информации для юзера). -------------------- ![]() ![]() |
|||
|
||||
| FlameTH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
респект ))
|
|||
|
||||
| DmitryTs |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.3.2007 Где: Moscow Репутация: нет Всего: нет |
Да и ещё лучше не писать не "Неверный пароль!" и "Неверный логин!", а "Неверный логин или пароль"
|
|||
|
||||
| flashaa |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
А зачем делать какие-то символы недопустимыми? Можно сделать, чтобы все введенные значения обратывались функцией htmlspecialchars() и опасные символы, такие как "<", ">", кавычки превращались в хтмл-сущности - < > после такого преобразования все введенные данные в хтмл будут выглядеть совершенно обычно, однако никакого вреда не принесут.
Здесь функция trim() убирает лишние символы пробела в начале и конце пользовательского комментария, параметр функции ENT_QUOTES - означает, что кавычки также должны заменяться на хтмл-сущности, а последний параметр "cp1251" - кодировка, в которой будет представлена строка. А пароли надо шифровать md5() Это сообщение отредактировал(а) flashaa - 14.7.2007, 13:58 |
||||
|
|||||
| FlameTH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Спасибо конечно, но насчет md5() хешей я другого мнения.
|
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
Я к тому, что в пароли тоже можно записать кавычки и какой-нибудь код.
Поэтому что-то делать с паролями обязательно а запрещать спецсимволы в паролях как-то не принято. Да и хтмлспециалчарс преобразовывать тоже как-то не к месту. Что ещё остается кроме шифрования? я лично не знаю. Отредактировано: не заметил, что у вас шифрование имеется. Вопрос снимается. Это сообщение отредактировал(а) flashaa - 14.7.2007, 16:08 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: нет Всего: 118 |
еще вариант передачи пароля по небезопасной сети ...
алгоритм такой : 1)сервер генерирует соль $salt, вписывает ее в hidden поле формы 1 2)на форме 1 также присутвует поле логин и submit 3)на форме2 есть поле пароль. 4)юзер вводит пасс, жмет субмит, его действия перехватывает javaScript, что вычислят md5($salt.$password) и вписывает его в скрытие поле формы1 5)идет остсылка $salt, $login, $md5hash 6)сервер делает SELECT из бд по логину, находит пароль. 7)делает md5($salt.$password_from_db). 8)если дайджесты (сгенерированный сервером и посланый юзером) совпали - значит авторизация ОК, иначе бэд. время сесии ессно ограничено. перехватить пароль невозможно по причине его неотсылке 8) получить пароль за короткое время также невозможно (возьмите соль побольше ..) покриптовать бд тоже стоит...ну это уже иная тема.... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| GZep |
|
||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
ИМХО нельзя допускать в нике все символы. Но тут на вкус и цвет. хэшировать лучше так:
-------------------- ![]() ![]() |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |