С вопросами безопасности web ресурсов постоянно сталкивается каждый разработчик. И, естественно, в этой области существует масса решений. В этой статье я хочу рассказать о встроенных возможностях фрэймворка CodeIgniter, которые можно использовать для авторизации посетителей и ограничения их доступа.
Прежде всего, вкратце обрисую сложившуюся ситуацию.
Большинство web ресурсов используют для защиты пару «имя — пароль». Это не самый безопасный вариант, но зато удобный (простой) в использовании.
Более сложные методы защиты требуют от посетителя либо специальных знаний, либо покупки оборудования, либо того и другого. Например, служба WebMoney использует сертификаты для авторизации пользователей. Метод хороший, но инструкция по использованию и безопасной работе с этими сертификатами занимает несколько страниц. Обычный пользователь интернета не станет связываться с такой системой без достаточно веской причины (в случае WebMoney речь идет о его собственных деньгах).
Об аппаратной защите (вроде биометрических датчиков и т.п.) и говорить не приходиться. Эти устройства стоят денег и, зачастую, немаленьких.
Поэтому, метод авторизации с помощью имени и пароля, похоже, останется самым распространенным в обозримом будущем.
В «классическом» варианте этот метод работает так. Посетитель вводит имя и пароль, вы их проверяете и, если все в порядке, записываете какой-нибудь параметр в сессию (например, имя пользователя). После этого, в каждую защищенную страницу сайта нужно добавить код, который будет проверять, установлен ли нужный параметр в сессии, и если нет, предлагать посетителю ввести имя и пароль.
Естественно, этот подход далеко не самый лучший, т.к. код проверки формы будет дублироваться на каждой странице.
Читать дальше