Проверка подлинности .htaccess из сценария php для предотвращения диалогового окна браузера. - PullRequest
0 голосов
/ 23 апреля 2010

Используя php, я аутентифицирую пользователя, затем за кулисами они снова проходят аутентификацию с использованием одного имени пользователя и пароля .htaccess.Это будет одинаковым для всех пользователей, но я бы не хотел, чтобы им снова приходилось вводить имя пользователя и пароль, и теперь им будет разрешено входить в защищенный паролем каталог.Я предпочитаю не использовать http://username@password:somedomain.com.

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 23 апреля 2010

Если вы хотите избежать нескольких входов в систему, но нуждаетесь в аутентификации HTTP, вы можете использовать только аутентификацию HTTP для фактического входа в систему. Это потому, что PHP может выдавать и отвечать на такие заголовки.

http://php.net/manual/en/features.http-auth.php

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

Примечание. Это решение недоступно для CGI-версий PHP.

2 голосов
/ 23 апреля 2010

Вы не должны этого делать.

Либо:

  1. Добавьте код в защищенный каталог .htaccess, чтобы использовать вашу схему аутентификации PHP, и удалите аутентификацию .htaccess.

  2. Напишите новую страницу / скрипт PHP, через которую ваши аутентифицированные пользователи получат доступ ко всему защищенному контенту.Удалите защищенный контент из корня сети или используйте файл .htaccess, чтобы запретить любой доступ.Ваш скрипт сможет получить доступ к файлам, но пользователям придется пройти через скрипт, чтобы получить к ним доступ.

0 голосов
/ 23 апреля 2010

Извините, я не верю, что это возможно (если вы не хотите использовать схему username: pass @ url). Вы можете написать ajax, чтобы сделать это за кулисами, что будет означать, что браузер запомнит авторизацию для этой области (возможно, я никогда не пробовал). Но вам все равно понадобится имя пользователя / пароль независимо.

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

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

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