Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];

Вниз

логин юзера на сайт (общий вопрос по безопасности)   Найти похожие ветки 

 
antonn ©   (2007-05-23 00:25) [0]

Сижу, значит, думаю. Как наиболее качественно и при наименьших ресурсах сервера делать вход юзера на сайт? До сих пор делал так - при входе в куки пишу логин и md5 пароля. При обновлении страницы из куков достаю логин и пароль, обрабатываю от всяких нехороших символов, в $GLOBALS[] пишу значение, которое значит, что страница как для пользователя (ну и ниже по коду ее проверяю). Чем плох такой подход и как можно сделать лучше?


 
G_M_S ©   (2007-05-23 09:58) [1]

Не понял, зачем логин с паролем писать в куки? Выводишь на странице логина форму, получаешь от юзера логин/пароль, проверяешь как там тебе удобно, и устанавливаешь некую переменную в сесии

$_SESSION["is_logged"] = 1

Когда юзер разлогинивается - делаешь unset($_SESSION["is_logged"])

На странице пишешь, где должны быть различия для авторизованных и неавторизованных юзеров такое:

<? if(isset($_SESSION["is_logged"])): ?>

//тут для залогиненных
//все, что угодно, включая PHP-скрипты

<? else: ?>

//Тут для прочих

Что касается хранения - можно сохранять переменные $_SESSION["login"] и пр., можно даже ID-сессии хранить на сервере, коли сильно надо
<? endif ?>


 
Pazitron_Brain ©   (2007-05-23 10:27) [2]

http авторизация :)


 
homm ©   (2007-05-23 10:37) [3]

> Не понял, зачем логин с паролем писать в куки? Выводишь
> на странице логина форму, получаешь от юзера логин/пароль,
> проверяешь как там тебе удобно, и устанавливаешь некую
> переменную в сесии
> $_SESSION["is_logged"] = 1
> Когда юзер разлогинивается - делаешь unset($_SESSION["is_logged"])

До чего люди наивные :) Идентификатор сессии то проще перехватить, чем хэш пароля.


 
antonn (work)   (2007-05-23 10:45) [4]

я ваще так понял, что сессия - это те же куки, только автоматизинованы при использовании (если только они через get не передаются).

попытался распотрошить пхпнюку - но, блин, там закопаться можно...


 
homm ©   (2007-05-23 11:06) [5]

> я ваще так понял, что сессия - это те же куки,

Не совсем. Сами данные храняться на сервере, в контейнерах (по умолчанию фалы, но можно передлать в базу, например), а вот идентификатор контейнера передаеться в куках. А если куки не подерживаються браузером, то идентификатор прилепляеться к каждой ссылке, к каждой форме, в общем везде, где может произойти переход на другую страницу.


 
McSimm_ ©   (2007-05-23 12:52) [6]


> Идентификатор сессии то проще перехватить, чем хэш пароля.

Чем легче ?


 
homm ©   (2007-05-23 13:28) [7]

> > Идентификатор сессии то проще перехватить, чем хэш пароля.
> Чем легче ?

Так и знал что ктонить придереться, ок не легче. Не сложнее, как минимум. Хотя опять-же он может в каждой ссылке писаться, тогдк легче.


 
G_M_S ©   (2007-05-23 15:17) [8]


> До чего люди наивные :) Идентификатор сессии то проще перехватить,
>  чем хэш пароля.

Вперед - перехватывай идентификатор сессии... Посмотрим, кто круче: ты или разработчики РНР.


 
McSimm_ ©   (2007-05-23 15:19) [9]

Разработчики PHP тут совершенно не при чем.


 
homm ©   (2007-05-23 15:23) [10]

> Посмотрим, кто круче: ты или разработчики РНР.

Какая разница. Все равно Бэтмен круче :)))


 
Gero ©   (2007-05-23 16:48) [11]

> [10] homm ©   (23.05.07 15:23)

По сравнению со слоном бэтмен отдыхает )


 
Real ©   (2007-05-24 13:14) [12]

Я обычно делаю авторизацию немного по другому: в БД держу таблицу sessions в которую пишу md5-хэш (генерируемый на основе нескольких значений, например time+ip) после проверки авторизации (если логин и пароль имеется в бд). Копия хэша - засылается юзеру в куки. Заголовком каждого файла, является выражение типа require("auth.php"); в котором проверяется хэш из куки на совпадение с каким-либо куком из таблицы sessions. Если запрос вернул 0 записей - значит авторизация неверная. Если было совпадение, то из таблицы sessions - берутся поля идентифицирующие юзера (например его ID или личные настройки. Эти данные записываются при авторизации, то есть тогда же, когда генерится хэш и заводится запись в таблицу sessions). При необходимости можно проверять и дату создания записи, если требуется ограничить срок жизни авторизации.

Взято из какой-то статьи по пхп-авторизации, автор вроде как Д.Котеров, а ему можно доверять в таких вопросах (имхо :)

Думаю яндекс, наверняка ответит большим кол-вом алгоритмов, чем форумчане в прочем :)


 
homm ©   (2007-05-24 13:18) [13]

> Копия хэша - засылается юзеру в куки.

А если у езера куки отколючены, то он сосет.

Это вообще-то и есть механизм сессий, только более частный и ограниченный случай :) Лучше уж просто переписать функции для сессий, что-бы в базу переменные складывались, а не на диск.


 
Real ©   (2007-05-24 15:29) [14]


> А если у езера куки отколючены, то он сосет.

Можно не в куки писать, а в сессию. Куки использую потому, что многие юзера хотят функцию "запомнить меня", то бишь не авторизироваться постоянно.


>Лучше уж просто переписать функции
> для сессий, что-бы в базу переменные складывались, а не
> на диск.

А как переписать? Перекомпилять что ли php, а потом хостеру сказать "возьмите мою новую версию пхп" ? :))))


 
homm ©   (2007-05-24 15:38) [15]

> А как переписать? Перекомпилять что ли php, а потом хостеру
> сказать "возьмите мою новую версию пхп" ? :))))

http://www.yandex.ru/yandsearch?rpt=rad&text=session_set_save_handler


 
Real ©   (2007-05-24 15:40) [16]

угу, а чем лучше такой вариант? :)


 
homm ©   (2007-05-24 15:47) [17]

> угу, а чем лучше такой вариант? :)

Тем что тебе не нужно переустанавливать php у хостера, тем более самому что-то переписывать :-/


 
Real ©   (2007-05-24 18:33) [18]


> Тем что тебе не нужно переустанавливать php у хостера, тем
> более самому что-то переписывать :-/

Издеваемся? Чем это лучше - [12] ?


 
homm ©   (2007-05-24 18:53) [19]

> Издеваемся?

Ни чуть.


> Чем это лучше - [12] ?

аботает, даже если куки отключены.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.059 c
2-1180086751
Юра
2007-05-25 13:52
2007.06.17
Ассоциация файлов!


2-1180037650
aleko
2007-05-25 00:14
2007.06.17
таблица MS Word


2-1179397301
Тимофей
2007-05-17 14:21
2007.06.17
TComboBox+TEdit


2-1180076046
Gentos
2007-05-25 10:54
2007.06.17
Интерполяция функции


15-1180009172
Zagaevskiy
2007-05-24 16:19
2007.06.17
Почему-то немогу написать сообщение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский