Каков наилучший подход к созданию Системы входа? - PullRequest
1 голос
/ 28 мая 2010

Мне всегда интересно, что созданные мной системы входа уязвимы для атак или нет.

Как и многие другие программисты, я также использую сеансы для хранения определенного токена, чтобы узнать статус входа. Файлы cookie для хранения имени пользователя или даже когда-либо сохраненного статуса.

Что мне интересно, так ли это? Есть ли какой-нибудь подход лучше, чем этот?

Ответы [ 3 ]

1 голос
/ 28 мая 2010

Вы можете создавать свои собственные пользовательские проверки в сеансе. Убедитесь, что он создан тем же пользовательским агентом и с того же IP-адреса.

Кроме того, сессии довольно прочные.

В разделе входа в систему вы должны сделать что-то вроде:

$_SESSION['_user_agent'] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['_remote_addr'] = $_SERVER['REMOTE_ADDR'];

, а затем вы можете проверить каждый запрос:

function sessionIsOK ()
{
    return ($_SESSION['_user_agent'] == $_SERVER['HTTP_USER_AGENT'] &&
        $_SESSION['_remote_addr'] == $_SERVER['REMOTE_ADDR']);
}
0 голосов
/ 28 мая 2010

Альтернативой обычным системам входа в PHP является HTTP-аутентификация. Это не требует использования сессий / куки. Особенно HTTP Digest аутентификация более безопасна, чем незашифрованные логины. (Большинство провайдеров виртуального хостинга не предоставляют SSL. И если большинство веб-приложений FLOSS редко его настраивают.)

Однако, есть некоторые недостатки юзабилити, которые могут быть устранены только при интенсивном использовании DHTML / AJAX. И это немного снижает производительность сервера. И самое главное: это слишком сложно реализовать правильно для большинства программистов.

Если достаточно простой системы входа в PHP, это зависит от типа вашего приложения.

0 голосов
/ 28 мая 2010

Я думаю, имеет значение, используете ли вы https: если вы используете http вместо https, то система имеет много уязвимостей: например, повтор и человек в середине / реле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...