Наиболее безопасный метод PHP «доступ запрещен» - PullRequest
2 голосов
/ 13 июня 2011

Я создаю сайт, который имеет одну систему аутентификации как для обычных пользователей, так и для администраторов (используя CodeIgniter и Tank Auth, для всех, кто заинтересован).Они дифференцируются на основе учетных данных профиля.(Это безопасный подход?)

Мой вопрос: когда пользователь получает доступ к области, у которой нет учетных данных для просмотра, какую функциональность PHP я должен использовать для ограничения доступа?Мои мысли - это либо функция «перенаправление», либо «выход».Какой самый безопасный подход?

Ответы [ 2 ]

5 голосов
/ 13 июня 2011

Используйте оба:

header("Location: http://your_login_page");
exit();

exit () гарантирует, что оставшаяся часть сценария не будет обработана, а header () отправит пользователя в полезное место. («Бесполезные руки - мастерская дьявола ...»)

1 голос
/ 13 июня 2011

Ну, я думаю, что Tank Auth уже должен с этим справиться, не так ли? (Я никогда не использовал эту библиотеку, Ion Auth делает это, и я предположил, что это необходимо для системы аутентификации). Обычно в простом Php вы можете сделать

header("Location: your/url");
exit();

при перенаправлении после проверки зарегистрированного статуса (через $ _SESSION, $ _SESSION + cookies, например, ex.). Exit () запрещает запуск сценария в случае сбоя заголовка, что приводит к отображению нежелательного кода.

Codeingiter имеет свою встроенную систему перенаправления (см. здесь, в руководстве пользователя ) функцию redirect () . Вы можете использовать его как:

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

или используя 'location' вместо 'refresh', ведьма позволяет вам установить ответ заголовка для отправки на сервер

// with 301 redirect
redirect('/article/13', 'location', 301);

Но я считаю, что у Tank Auth есть свои собственные методы, которых достаточно для вашего приложения, вы уже проверяли это?

...