Закрытие
×

Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.

Для скачивания исходных файлов необходимо авторизоваться под своим аккаунтом через соответствующую форму.

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

×
  • Как сделать сайт с нуля своими руками (вводная часть)

    1. Причины создания пошаговой инструкции по разработке самописного сайта
    2. Тема создаваемого сайта
    3. В чем будет заключаться монетизация
    4. Функционал
    5. Этапы создания
    6. Текущее состояние создаваемого сайта

    Здравствуйте уважаемый посетитель!

    Наверное, многие задаются вопросом, как можно самому создать сайт для ведения бизнеса в интернете или просто для реализации своих интеллектуальных способностей.

    Причем чтобы такой интернет-ресурс был создан не на каком-нибудь стандартном шаблоне бесплатной СMS (Content management system - система управления контентом) типа WordPress, Drupal, Joomla и т.п., а заточенный под себя, с возможностью обеспечить ему должную безопасность и реализовать все свои индивидуальные потребности.

    Часто такие сайты, созданные под конкретные задачи на основе языка разметки веб-страниц HTML, стилей CSS и других инструментов веб-программирования (PHP, JavaScript и т.п.), называют самописными.

    Этой статьей начинается отдельная рубрика "Как сделать сайт с нуля своими руками", где на реальном примере, с предоставлением исходных материалов (программные коды, файлы и т.п.), будет показано, как действительно можно самостоятельно сделать рабочий сайт.

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

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

Самописный сайт своими руками!

Текущее состояние создаваемого сайта

Здесь можно посмотреть текущее состояние тестового самописного сайта, который создается в рамках цикла статей Сделай сайт с нуля своими руками.

Где в дополнительных материалах можно бесплатно скачать исходные файлы сайта с таблицами MySQL.

Вы здесь: Главная → Сборник статей → Авторизация пользователей



Статья 1 сборника
2019-01-03

Авторизация пользователя в PHP

  • Зачем нужны сессии и cookies
  • Использование сессий и cookies в механизме авторизации
  • Как узнать текущие настройки PHP
  • Как изменить параметры настроек сессий и cookies
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

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

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

Здесь должно быть предусмотрено кроме процедуры проверки легальности пользователя, также предоставление ему прав на выполнение определённых действий, причем непрерывного доступа к разрешенным ресурсам без каких-либо ограничений при последующих загрузках веб-страниц. И с прекращением прав доступа при выходе пользователя из системы, либо по окончании срока жизни сессии.

Данная статья представляет собой вводную часть нового радела "Авторизация пользователей", в котором предполагается рассмотреть все основные вопросы, связанные с созданием на сайте полноценного механизма авторизации.

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


Статья 2 сборника
2019-01-25

Создаем систему авторизации пользователей

  • Создание сессии, ее переменных и cookies при успешной аутентификации пользователя
  • Проверка наличия активной сессии и предоставление прав доступа при подтверждении легальности пользователя
  • Подключение блока меню авторизованного пользователя
  • Автоматическое удаление сессии по истечение времени не активности
  • Выход - ручное завершение сеанса
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

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

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

Но это не единственная мера по защите конфиденциальности сессий, которые мы будем использовать в нашей системе авторизации. В следующей статье мы рассмотрим и другие способы защиты сессий от хакерских атак. Такие, как проверка браузера пользователя по HTTP-заголовку user-agent, привязка по IP-адресу, а также использование временных меток сессий.

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


Статья 3 сборника
2019-02-14

Повышаем уровень безопасности сессии с помощью HTTP-заголовка User-Agent

  • Привязка пользователя к HTTP-заголовку User-Agent
  • Проверяем работоспособность проверки на 'подпись' браузера
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

В предыдущей статье мы создали систему авторизации пользователей с применением определенных мер по защите конфиденциальности сессии. Где использовали следующие методы защиты:

  1. запрет доступа через скриптовые языки (JavaScript) к cookies, хранящим идентификатор сессии и одноразовый ключ;
  2. установку определенного времени жизни, как для сессии, так и для относящихся к ней cookies;
  3. настройку PHP на работы только с сессиями из cookies;
  4. использование одноразового ключа, предназначенного для дополнительной проверки подлинности пользователя;

Для обычного сайта, блога или какого-нибудь другого ресурса, не предусматривающего работу с какими-либо финансовыми инструментами, в принципе, можно этим и ограничиться. Тем более, примененная здесь дополнительная защита с использованием одноразового ключа весьма эффективна. Она не только существенно ограничивает хакеру время на осуществление взлома, но также требует получение необходимых значений всех свойств используемой для ключа cookie.

Но при желании возможно применить и другие дополнительные меры, которые могут еще более повысить уровень безопасности сессии. А в ряде случаев, при обработке конфиденциальной информации (работа с банковскими картами, онлайн оплата и т.п.) использование таких дополнительных мер просто необходимо.

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

  1. проверку подлинности пользователя по HTTP-заголовку User-Agent;
  2. привязку по IP-адресу.

Кроме того, рассмотрим также некоторые варианты дополнений к работе механизма удаления устаревших сессий. Так как стандартное решение по удалению сессий из хранилища, так называемым "сборщиком мусора", имеет определенные недостатки (рассматривалось в предыдущей статье). И посмотрим, как можно изменить его работу, используя для этого:

  1. временные метки сессий через переменную $_SESSION;
  2. отдельный скрипт, который проверяет время последней сборки мусора и удаляет сессии с истекшим сроком жизни.

Что касается такого способа, как использование защищенных соединений при работе с сессиями, то этот вопрос мы затронем несколько позднее, когда будем рассматривать установку сертификата SSL и применение протокола HTTPS. При этом следует отметить, что для интернет-ресурса, предусматривающего работу с денежными потоками, использование такого метода является обязательным требованием для защиты сессии от перехвата.


Статья 4 сборника
2019-02-27

Привязка сессии к IP-адресу

  • Механизм привязки пользователя к IP-адресу
  • Дополняем систему авторизации проверкой по IP-адресу
  • Проверяем достоверность пользователя на соответствие IP-адреса
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

Сегодня рассмотрим еще один из возможных методов защиты сессий от хакерских атак, основанный на привязке к IP-адресу.

При этом следует обратить внимание на то, что данный способ имеет существенные ограничения, так как его применение возможно только при использовании статических IP-адресов.

Несмотря на это, для некоторых категорий пользователей, требующих повышенных мер безопасности, это достаточно эффективное средство для защиты сессий от взлома.

В нашем случае будем рассматривать использование этого метода для учетной записи администратора, которая обычно предполагает доступ к отдельным, зарытым от всех остальных пользователей, административным ресурсам сайта. От чего, на мой взгляд, для такого случая привязка к IP-адресу вполне уместна и весьма полезна.


Статья 5 сборника
2019-03-08

Управляем доступом к сессии с помощью временных меток

  • Механизм управления доступом к сессии с помощью временных меток
  • Дополняем систему авторизации проверкой на активность пользователя
  • Проверяем автоматическое уничтожение сессии в случае достижения порога не активности пользователя.
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

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

Особенность данного способа состоит в том, что его применение гарантировано обеспечивает уничтожение сессии с истекшим сроком жизни при любых попытках ее возобновления. Причем не зависимо от работы механизма очищения хранилища.

Тем самым, включение такого функционала в систему авторизации, практически, сведет на нет все попытки злоумышленников использовать для взлома устаревшие по времени сессии.


Статья 6 сборника
2019-03-19

Удаляем истекшие сессии с заданной периодичностью

  • Недостатки существующего механизма сборки мусора
  • Принцип действия пользовательского скрипта удаления истекших сессий
  • Практическая реализация очищения хранилища с заданной периодичностью.
  • Проверка работы созданного скрипта.
  • Исходные файлы сайта

Здравствуйте уважаемый посетитель!

Сегодня коснемся еще одного вопроса, в какой-то мере, относящегося к безопасности системы авторизации. А именно: посмотрим, как можно с помощью пользовательского скрипта упорядочить удаление сессий с истекшим сроком жизни.

Рассмотрение это обусловлено тем, что по умолчанию существующий PHP-механизм управления сессиями основан на вероятности удаления (сборкой мусора) из хранилища истекших сессий. И при определенных условиях это может происходить через достаточно большие промежутки времени. А значит, время нахождения в хранилище соответствующих файлов может быть чрезмерно большим. И очевидно, при таких условиях стоит учитывать определенную вероятность их несанкционированного использования.

При этом следует отметить, в случае управления доступом к сессиям с помощью временных меток, который мы рассмотрели в предыдущей статье, можно и не дополнять систему авторизации этим функционалом. Так как в том варианте уже предусмотрен гарантированный запрет несанкционированного использования истекших сессий при любых условиях очищения хранилища.

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