2017-02-15 5 views
0

В основном, когда публичные методы в контроллерах вызываются через запросы ajax, их можно публично увидеть в консоли, верно? Должен ли я беспокоиться о том, чтобы сделать их более неясными? Например, при вызове метода проверки учетных данных пользователя?Соглашения об именах для функций публичного контроллера?

Какой совет вы можете дать по этому поводу?

ответ

0

Если вы хотите, чтобы скрыть свое имя контроллера от публики вы можете определить собственный маршрут в config/routes.php - например:

$route['about'] = 'name_controller/about'; 

Then, http://example.com/about 
goes to http://example.com/name_controller/about 

Подробнее о URI Routing

Обратитесь к этому link тоже

См. Этот вопрос для соглашений об именах Correct naming structure for CodeIgnitor

0

Проверить этот стек пост: - controller security naming convention

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

1

Я всегда сопровождаю re Я использую класс ввода is_ajax_request() в начале этих запросов, его единственный шаг, но хороший, означает, что пользователи пытаются просмотреть там в браузере, вы можете просто сделать что-то подобное в начале метода.

if(!is_ajax_request()) { 
    show_404(); 
} else { 
    // Do your code here 
} 

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

Помимо этого, удостоверьтесь, что все идентификаторы и т. Д. Зашифрованы, если они отправляются в POST или GET .. Codeignter имеет класс шифрования, поэтому любые незашифрованные данные не будут работать ... (также устанавливают эти защиты при получении этих элементы.

Люди посылающих во всех этих «частных методах» вещей, очевидно, не прочитали ваш вопрос ...

+0

Ницца, поэтому я просто положил это на самый верх моих контроллеров? – herondale

+0

Да, все, что делает контроллер, должно быть в другом –

+0

Спасибо, это было действительно, очень полезно, даже если оно прямо не ответило на мой вопрос. Жаль, что я не могу принять здесь два ответа.+1 :) – herondale

2

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

Общие методы обеспечения безопасности, что я могу думать о том, являются:

  1. Добавить управления наводнениями/IP черный список, чтобы предотвратить brute force attack.
  2. Используйте HTTPS для предотвращения man in the middle attack или packet sniffing.
  3. Используйте security class, если необходимо, чтобы предотвратить XSS.
+0

Спасибо, я буду помнить об этом. – herondale