Контроллеры Codeigniter: POST с закрытыми функциями или no-POST с открытыми функциями? - PullRequest
0 голосов
/ 31 августа 2011

Принимая во внимание безопасность, лучше всего (для приложений codeigniter):

  1. Иметь контроллер, который проверяет ввод POST, а затем делегирует приватные функции.

ИЛИ

  1. Есть контроллер с кучей открытых функций.

Мое соображение здесь заключается в том, что если мы разрешим пользователям просматривать URL, они могут просто снова использовать этот URL, чтобы выполнить какое-либо действие. Но если мы будем придерживаться метода делегирования POST, не каждый сможет настроить свою собственную информацию POST и попытаться настроить систему.

Но действительно ли это важная проблема? Есть ли лучшие практики для такого типа проблем?

Примечания: Я также использую AJAX в приложении.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

My 2p: Включение защиты CSRF (которая присутствует в CI 2.0.3) должно пойти каким-то образом, чтобы удовлетворить ваши соображения безопасности относительно размещения «любых старых данных» на контроллерах.

http://codeigniter.com/user_guide/libraries/security.html (в конце).

0 голосов
/ 31 августа 2011

Просто мое личное мнение, но я бы выбрал ваш первый вариант, используйте POST с частными функциями.

Мне нравится держать мои контроллеры заблокированными, они независимы и приватны и фактически находятся под control ! Они могут создавать другие классы «обслуживания» (например, Модели и Представления), вызывать открытые методы в Модели и затем передавать данные в общедоступные переменные Представления.

На мой взгляд, это так:

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


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

НТН

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