Htaccess - Http-аутентификация - возможно ли перехватить GET и применить аутентификацию, а затем перенаправить?Есть пример - PullRequest
0 голосов
/ 29 января 2012

Я играл с http-аутентификацией, используя файл .htaccess, чтобы улучшить мой текущий cms.

Я нашел решение в apache, тогда как где-то я использую ссылку в моем html <a href=".test">Test</a>.

Затем я добавляю это в мой .htaccess:

<Files .test>
AuthType Digest
AuthNAme "Restricted Page"
AuthDigestProvider file
AuthUserFile /usr/home/myDomain/includes/htpasswd/admin/.htdigest
Require valid-user
# If user is authenticated then redirect
RewriteEngine on
RewriteCond %{REMOTE_USER} !=""
RewriteRule ^.*$ /test.php? [R]
</Files>

Что происходит, когда пользователь щелкает по упомянутой гиперссылке, пользователю предлагается ввести форму для входа через http-аутентификацию. Когда они вводят правильные учетные данные, они перенаправляются на страницу в доступном корне с именем test.php, которая, в свою очередь, включает в себя индекс cms, который хранится в веб-корне.

Если пользователь выбирает раздел в cms, ему предлагается снова войти в систему (используя систему входа по умолчанию на основе php сайтов), и только пользователи с правильными назначениями ролей могут получить доступ к любому конкретному разделу.

Хотя это полезно, это не совсем то, чего я пытаюсь достичь.

То, о чем я подумал, - это два возможных решения в моем случае.

В одном месте пользователь мог бы ввести, скажем, http://www.myDomain.com/?whateveryoulike в адресе и вместо этого быть направленным на мои cms. В идеале это перенаправление направило бы прямо на мой индекс cms в его корневом каталоге, который недоступен через http://. Нечто подобное можно сделать в php:

if isset($_GET['whateveryoulike']) 
{
include $_SERVER['DOCUMENT_ROOT'] . '/../../admin/blah.php';
}

Еще один вариант, о котором я подумал, - это то, о чем я не очень разбираюсь, но это относится к http-аутентификации, и я уже видел один раз в использовании ...

Обычно пользователь вводит username@www.myDomain.com, и ему выдается запрос с полем входа http auth. Когда учетные данные соблюдаются, они отправляются в отдельный раздел на веб-сайте.

Кто-нибудь сможет предоставить какие-либо комментарии, предложения или дополнительные идеи, касающиеся того, как мне поступить?

Однако мой вопрос: возможно ли перехватить HTTP-аутентификацию с помощью GET (http://www.myDomain.com/?whateveryoulike), а затем перенаправить пользователя на страницу, которая находится вне корня http://?

Спасибо, что нашли время, чтобы прочитать это!

1 Ответ

2 голосов
/ 29 января 2012

можно реально перехватить GET, применить http-аутентификацию, а затем перенаправить пользователя на страницу, которая находится вне http: // root?

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

Хотя я не вижу смысла во всей предпринимательской деятельности.

...