|
Тема
|
Authentication
|
|
Автор |
Sertys (Emergency) |
Публикувано | 16.02.05 03:51 |
|
Какви методи използвате за автентикация на юзерите? Кое според вас е най-сигурно? Как пренасята SessionID's? До каква степен разчитате на cookies. Какво е отношението ви към realm auth-a? Вече имам готова система за идентификация и автентификация, но искам да разбера дали има по-сигурен вариант. Изцяло съм я базирал на cookies, а това е смутително, но дори и със CGI::Session пак трябва да разчитам на тях.
Много въпроси :(
| |
|
То общо взето нямаш избор, така или иначе ти трябва cookie. Аз лично не ползвам CGI::Session а съм си направил собствена система за аутентикация при която клиентското cookie не съдържа никаква важна информация относно сесията освен някакъв юсер ID, всичко се пази в server cookie. Идентификацията при всяка нова заявка се прави на базата на комбинация от това ID и IP адреса регистриран при началото на сесията което води до проблеми при определени ситуации но сигурността е по голяма. Всички права на юсера и важна информация се съдържат в cookie на сървъра. Ако не желаеш този юсер ID да се взима от клиентско cookie, може да се направи да бъде генериран в CGI хедърите и линковете на страниците достъпни след аутентикацията със съответната проверка за refferer.
Други начин за аутентикация е със сертификати но това доста по труден начин за реализация и не мисля че е подходящ за публични сайтове.
Редактирано от novobranec на 16.02.05 21:58.
| |
Тема
|
Re: Authentication
[re: novobranec]
|
|
Автор | cdg (Нерегистриран) |
Публикувано | 24.04.05 00:36 |
|
Добре но как правиш следенето на сесията? При NAT ще имаш повече от един клиент с един и същ IP адрес?
| |
Тема
|
Re: Authentication
[re: cdg]
|
|
Автор |
novobranec (може би?) |
Публикувано | 29.04.05 19:28 |
|
Както писах преди, следенето на сесията е на база комбинация IP:ID така че при нат няма проблем да се разграничават усерите, обаче при динамичен нат зад pool се получава проблем защото всяка нова заявка е от различно IP, но такива случаи са рядкост.
| |
Тема
|
Re: Authentication
[re: novobranec]
|
|
Автор | Пaвeл Близнakoв (Нерегистриран) |
Публикувано | 21.05.05 21:42 |
|
Аз този проблем съм го решил без никакви бисквитки:
Използвам идентификатор на сесията (произволен дълъг низ от символи), който е уникален за всяка сесия. Този идентификатор се съхранява в база данни, в която се отчита и времето на последната активност от страна на потебителя със съответния идентификатор. От базата данни за сесиите има връзка към базата данни с потребителите по потребителско ИД. Самото предаване на идентификатора при преминаване от едина в друга част от сайта става с GET или POST метод. При отваряне на нов документ се извиква функция, проверяваща валидността на идентификатора. А що се отнася до сесиите с бисквитки - доста голяма част от алгоритмите използващи бисквитки са много лесни за exploit, чрез създаване на сесиината бисквитка с javascript, директно от сайта ви
Поздрави!
| |
Тема
|
Re: Authentication
[re: Пaвeл Близнakoв]
|
|
Автор | novobranec (Нерегистриран) |
Публикувано | 24.05.05 15:18 |
|
Да, това е другия начин за който бях писал по горе, но ми се струва че той е още по лесен за exploit достатъчно е да се снифне една заявка от потребителя за да му получиш ид то.
Според мен най-добре е да бъде комбинация от двата метода+аутентикация по IP т.е да се следи съответствие между cookie,id в header-а и IP адрес тогава вероятността за нежелан достъп става още по-малка.
| |
Тема
|
Re: Authentication
[re: novobranec]
|
|
Автор | Пaвkaтa Б. (Нерегистриран) |
Публикувано | 07.06.05 11:16 |
|
Май пропуснах по-горе да спомена, че при проверката на id-то се сверява и дали IP-то съответства на id-то в базата данни. По този начин единственият начин за експлойт със сниф е от някой, който ползва същота IP като вас ;)
| |
Тема
|
Re: Authentication
[re: Пaвkaтa Б.]
|
|
Автор | cdg (Нерегистриран) |
Публикувано | 28.10.05 23:03 |
|
Доста материали изчетох и ще споделя по вашите системи по горе копират и се основават на базата на Apache::session. Естествено можеш да включиш и IP адреса и разни time out-и.
Най сигурния начин е да използваш SSL тогава поначало сесията която се създава е уникална и не може да бъде открадната и криптирана естествено. Тогава спокойно може да приложиш и cookie със опция secure ( да се ползват само при налична SSL ) и таймоут + IP.
Perl the best !!!
| |
|
|
|
|