2009-10-22 6 views
0

производства Следующий сайт показывает способ (своего рода хак-МОГ), чтобы защитить администратора маршрут с .htaccess:CakePHP + администратора маршруты + .htaccess + режим

http://snook.ca/archives/servers/password_protect_admin/

Если я правильно понимаю, это работает только потому, что CakePHP проверяет наличие «реального» файла, прежде чем обрабатывает собственную логику URL-адреса. Таким образом, когда вы запрашиваете свой сайт yoursite.com/admin, он проверяет документ по умолчанию в (реальный, так как мы его создали)/admin dir, и эта проверка запускает аутентификацию.

Моя проблема: «hack» работает нормально, если я установил уровень отладки на «1» или выше. Если я установил его в режим производства ('0'), я просто получаю сообщение об ошибке HTTP 401 (Access Denied), обработанное торт.

Итак, мой вопрос: есть ли способ сделать это «взломать» работу с уровнем отладки, установленным на ноль?

+0

Почему вы хотите защитить свои маршруты администратора таким образом? Просто чтобы получить еще один вызов/ответ, прежде чем разрешить доступ? Я думаю, что вы можете переоценить это. –

+0

Если вы только что установили свои маршруты администратора, они остаются открытыми для общего доступа, если вы не установите для них компонент проверки подлинности. Поскольку я не нуждаюсь в реальном управлении пользователями (просто защита паролем), я решил использовать встроенный autache вместо Apache, а не для торта. Итак, я думаю, что я на самом деле недостаточно ее разрабатываю. = D –

+0

, даже если вы можете заставить его работать, вы должны использовать компонент auth для удобства и гибкости. кроме того, это действительно легко настроить –

ответ

2

Проверьте SecurityComponent, который позволяет настроить базовую HTTP-аутентификацию с помощью нескольких строк кода в вашем beforeFilter. Должно быть намного более надежным, чем этот хак.


Я согласен, хотя, что AuthComponent является ужасающе легко set up. Вы просто скопируете и вставьте фрагменты для UserController и формы входа, запустите сценарий создания таблицы, попробуйте войти в систему, возьмите закодированный пароль из журнала SQL, поместите его в базу данных и добавьте Auth в список компонентов вашего контроллера. Принимает менее 3 минут и производит лучшее впечатление на клиента (в случае, если кто-то заботится;)).

+0

Вы, наверное, правы, я, вероятно, чрезмерно сопротивляюсь, используя компонент Auth lol. В любом случае, этот SecurityComponent также выглядит интересным для меня, я думаю, что я сделаю это. Если это окажется чрезмерно сложным или недооцененным, я просто перестану жаловаться и попробую компонент Auth. = D –

Смежные вопросы