Могу ли я использовать CodeIgniter URI для проверки входа в систему? - PullRequest
0 голосов
/ 08 февраля 2012

Допустим, у меня есть URL http://localhost/home, и это стандартный URL страницы.

Когда пользователь входит в систему, он перенаправляется на http://localhost/admin/home.

Этот URL безлюбая маршрутизация на самом деле больше похожа на http://localhost/admin/panel/index/home.

Где admin - это папка, панель контроллера, индекс функции и домашнее расширение, чтобы дать представление.

Можно ли теоретически проверить, еслипользователь вошел в систему в зависимости от того, равен ли rsegment (2) «admin»?или может ли пользователь подделать URL, чтобы как-то сломать систему.

NB: Контроллер панели (внутри папки администратора) имеет в своей функции индекса фактический вход в системуЯ хотел бы узнать, сможет ли пользователь обмануть систему, чтобы она не выполняла функцию индекса, или это безопасно.

Ответы [ 4 ]

1 голос
/ 09 февраля 2012

Нет, вы не можете полагаться на URI, чтобы проверить, вошел ли пользователь в систему. Вы должны использовать библиотеку аутентификации, такую ​​как TankAuth или IonAuth .

Также, если вам нужны дополнительные параметры, вы можете посетить Как выбрать библиотеку аутентификации для CodeIgniter? .

1 голос
/ 09 февраля 2012

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

Если вы создаете контроллер с именем MY_Admin_Controller и все ваши административные контроллеры наследуют от него , а вы выполняете административную проверку в MY_Admin_Controller, то вы сохраняете свою систему СУХОЙ (ДонПовторите себя), потому что вам не нужно проверять, должен ли этот пользователь иметь доступ в каждом контроллере.Только один раз, и контроллеры унаследуют эту проверку.

0 голосов
/ 09 февраля 2012

Whaaa?

Ваш маршрут будет указывать на контроллер , если этот контроллер не защищен, то он открыт для общего доступа.

0 голосов
/ 08 февраля 2012

или пользователь может каким-то образом подделать URL, чтобы взломать систему. [?]

Конечно, URL - это самая простая часть, которую можно отправить на сервер, только вынужен браузер с адресной строкой - который сейчас, как я пишу, у каждого браузера есть;)

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