Как лучше всего сгенерировать токен входа? Уязвим ли этот метод аутентификации для атак?

Я должен был реализовать токены входа в мое приложение на основе Lithium (PHP framework). Две причины:

Я хочу иметь функцию «запомнить меня».

Мне также нужен способ отслеживания логинов на сервере, чтобы я мог проверять аутентифицированных пользователей на сервере сокетов node.js следующим образом:

  1. Пользователь запрашивает страницу
  2. Сервер возвращает представление с токеном сеанса где-то в HTML
  3. JS на стороне клиента читает токен и отправляет его на сервер node.js в попытке установить соединение через веб-сокеты.
  4. Сервер получает запрос на соединение и проверяет токен, отправленный ему сервером PHP.
  5. Разрешает или запрещает соединение в зависимости от результата.

Итак, это вопрос из двух частей, и он просто для проверки что я не идиот, потому что безопасность на этом сайте имеет более высокий приоритет, чем обычно.

Является ли это разумным способом создания токена входа?

<?php
// String::hash() generates a sha512 (by default) hash. 
String::hash(time() . $user['username']);
?>

Является ли предложенная мной система аутентификации через веб-сокет разумной? Видите ли вы какие-либо возникающие проблемы или какие-либо более эффективные способы их решения?

13
задан rich97 4 July 2011 в 10:48
поделиться