2010-06-18 7 views
2

Я прочитал here как попасть в Apache защищенный паролем directroy через dircet связи с простой:Как попасть в Apache каталогов, защищенных паролем, не показывая всплывающее логин

http://username:[email protected]/protected_dir/ 

, который работает в FF/Chrome/Safari, и, очевидно, не в IE7! :)

Вы знаете, как я могу попасть в защищенный каталог psw, создав, возможно, регистрационную форму и используя GET/POST для входа?

Нужно ли устанавливать сеанс перед входом или я могу просто передать в защищенный каталог пользователя и пароль как параметры GET/POST? (В этом последнем случае, какое имя для параметров мне нужно использовать?)

Спасибо!

+0

Как объясняется в приведенных ниже ответах, абсолютно верно, что HTTP-аутентификация не имеет ничего общего с GET/POST, поэтому аутентификация с помощью GET/POST невозможна. В любом случае, для тех, кто может быть заинтересован, в PHP можно также получить файл за паролем protecetd, просто сделав так: file_get_contents («http: // user: pass @ domain/protected_dir/file») –

ответ

5

Что вы имеете в виду, это HTTP-аутентификация и не обрабатывается параметрами URL или данными POST.

HTTP-клиент должен обрабатывать его напрямую.

Теперь, если у вас нет контроля над каталогом, защищенным паролем, вы ничего не можете сделать.
Если, однако, у вас есть контроль и вы хотите предоставить форму входа в систему HTML, вы должны изменить метод аутентификации и вместо того, чтобы полагаться на проверку подлинности HTTP, делать это через параметры URL или данные POST. Вы можете сделать это, не используя другой модуль типа аутентификации для Apache (обязательно сторонний, поскольку Apache поддерживает только HTTP Basic и Digest), или, что более реалистично, выполняет аутентификацию с PHP и управляет сеансом.

+0

спасибо за быстрый ответ. На самом деле это обрабатывается с помощью URL-параметров, поскольку URL-адрес, который я опубликовал в моем вопросе, работает во всех браузерах, кроме IE. –

+0

@Marco Demaio По параметрам url я имею в виду строку запроса. – Artefacto

+0

О, ладно, извините, так что в основном вы говорите, что нет способа. Я знаю, как это сделать, используя PHP-сессии, но вы говорите, что нет возможности выполнить проверку подлинности GET/POST по HTTP-аутентификации, не так ли? Просто знать, понял ли я! Благодаря! –