Я часто использую HTTP-аутентификацию на «административных» страницах использования (я единственный администратор), когда мне не хочется создавать систему входа только для себя. Это работает хорошо, отчасти потому, что я пользователь Mac / Safari, и Safari запоминает и применяет пароли HTTP Auth прозрачно. Страницы просто загружаются нормально, как будто вы даже не используете аутентификацию.
Что приводит к .... Я использую аутентификацию ?? Я не хотел бы случайно оставлять некоторые очень чувствительные части моего веб-сервера широко открытыми.
Это привело меня к этой идее. Могу ли я проверить $_SERVER['AUTH_TYPE']
и использовать это для блокировки доступа? Примерно так, в верхней части каждой страницы:
if (($_SERVER['AUTH_TYPE'] !== "Basic") and ($_SERVER['AUTH_TYPE'] !== "Digest"))
{ echo "HTTP Authentication Warning!"; exit; }
Или, я полагаю, проще isset($_SERVER['AUTH_TYPE'])
. Это кажется безопасным, простым и надежным способом дополнительной защиты аутентифицированных страниц. С этим, если когда-нибудь возникнет проблема, я узнаю об этом очень быстро.
Или, наверное, задам вопрос более конкретно:
Всегда ли вы получаете заголовок AUTH_TYPE при использовании HTTP-аутентификации?
Есть ли способ обмануть и заставить заголовок AUTH_TYPE, даже если вы не прошли проверку подлинности? Но, возможно, добавление дополнительного заголовка к вашему запросу?