Какой выбрать способ авторизации на сайте?

интернет компьютеры программирование php http

Есть выбор между http-authenticate и через куки. Какой из этих способов лучше в плане удобства и безопасности и почему?

Примечание:
> …не поставишь красивую форму авторизации
В данном конкретном случае абсолютно никакой рояли не играет.

Примечание:
кейлогеры, трояны — это всё понятно. Эта тема тоже стара как мир. В данном конкретном случае будут приниматься комплексные меры безопасности, в частности, использование ОС, которые не так легко цепляют трояны, как самая распространённая, параноидальная настройка файрволлов и всё в том же духе.

А вот ещё интересует: в случае http-auth реально ли хранить учётные записи не в .htpasswd, а в базе данных например? И стоит ли так делать?

Примечание:
резюмируя, можно сказать, что в плане безопасности можно выдвинуть на первый план привязку к ip?
Ответы:
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 тупо еще раз запросить пароль =)


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.