Ответы:
http-authenticate удобно но тут не поставишь красивую форму авторизации
через куки - куки могут стырить
Выход один использовать сессии
http://php.net/session
http-authenticate удобнее и безопаснее! в слечае с кейлогером считайте все хана вам! пасс потеряли!
Куки можно украсть троянчиком или чем то подобным!
HTTP Auth - тут ничего нового не придумаешь, схема стара как мир, но и украсть сохраненный логин/пасс не так-то просто.
Куки - легче украсть, но проще усложнять. Я бы выбрал cookies, но не просто логин/хеш_пасса, а нечто посложнее, вроде временных ключей как сейчас вконтакте, привязанный к ip/user-agent. Не буду лезть в такое извращение, как использование ассиметричного шифрования, но с ними можно придумать множество всяческих интересных вещей. Я бы выбрал cookies.
Куки никто не мешает привязать к ИП и хранить только одну запись с "ключем", а потом в БД сравнивать IP, если IP совпадает то впускаем если нет то запрашиваем авторизацию.
Андрюша Тарасов
Куки можно украсть гораздо проще - XSS например. А в случае с кейлоггером ничего, кроме виртуальной клавиатуры ( ;) ) не поможет.
Если Вы сделаете достаточное количество проверок в алгоритме авторизации
то сессий вполне достаточно
базовая авторизация средствами браузера - это незащищённая передача пароля. любой снифер, "левый" публичный прокси - и до свидания, пароль!
Есть много причин не применять HTTP аутентификацию, начиная с легкого перехвата и заканчивая более сложной настройкой сайта. Прописывание всех юзеров куда-то в .htpasswd - просто не вариант для сколько-нибудь сложного сайта, правда, можно использовать и базу данных:
http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html
Но все равно приходится делать много разных вещей, на shared хостинге вообще невозможных - никто не будет ради одного клиента менять политику безопасности и ставить лишние модули на апач - так что проще и надежнее сделать авторизацию средствами PHP (через сессию) и защиту от перехвата при помощи SSL.
Куки перехватить не сложнее чем http-auth, хотя их можно зашифровать. Если использовать https - проблема снимается.
В случае с PHP юзер и пароль просто кладутся в элементы массива $_SERVER (если не путаю). Вы можете делать с нмии что угодно, например, сверять по БД.
Да, к ip. Также можно, если привязанная к ip кука не совпадает - запросить у браузера его параметры, например юзер-агент, список плагинов, разрешение экрана и т.д. Можно, как в ВК, для этого использовать другой домен(если надо - опишу как), ну и в конце концов при смене ip тупо еще раз запросить пароль =)
15 лет назад