Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
$time=$year.$mon.$mday.$hour.$min.$sec;
Теперь четыре скаляра содержат необходимые для нас данные (логин, пароль, IP, время обращения).
Далее, нам необходимо прочитать имя, хэш пароля и сравнить их с полученными, для простоты представим, что пользовательские данные из базы уже лежат в скалярах $login_, $password_.
if ($login eq $login_ && $password eq $password_) {CreateID()}
else {WrongAuthorisation()}
При неудачной попытке авторизации увеличивается счетчик количества авторизаций, и в случае превышения лимита блокируется IP на некоторое время.
Теперь рассмотрим подробнее функцию &CreateID:
sub CreateID
{
return 0;
}
Данная функция содержит следующие шаги:
n подготовка данных для создания сессии;
n сохранение параметров сессии с самим номером сессии;
n отправка кука с номером сессии.
Я не считаю необходимым навязывать способы форматирования данных, у каждого они свои, поэтому поговорим немного об уникальности сессий. Как вы сами понимаете, каждая сессия должна быть уникальной, и нельзя, чтобы номера сессий пересекались. Поэтому было бы хорошо, чтобы номер сессии зависел от параметров, ассоциированных с сессией. Время начала сессии – подходящий вариант, но это уже будет выдавать один из параметров, поэтому лучшим способом будет вести список сессий, по которому будет легко определить отсутствие номера сессии, а собственно номер сессии генериться случайно. Выудить полезную информацию не получится, а сворованный идентификатор сессии ничего не даст (опять же кроме сложной атаки с использованием spoofing IP).
Основной принцип: минимум критичной информации у пользователя и в передаваемых данных.
Если на вашем сайте авторизированные пользователи, например, только добавляют статью, а дальше их авторизация ни к чему, тогда лучшим вариантом будет вообще отсутствие работы с куками, и любое действие, разрешенное только избранным, должно идти параллельно с авторизацией.
И еще один момент: я рекомендую по минимуму использовать чужой код, а если уж используете, то вы должны представлять, что, где и как обрабатывается. Некоторые люди смело ставят такие вещи, как YABB либо чужие гостевые книги, в большинстве которых есть дыры. В том же YABB допускается вставка FLASH, а это уже признак того, что можно легко устроить XSS-атаку.