.htaccess «Разрешить из окр» отключает SSLRequire

голоса
33

Использование Apache, я заставляю HTTPS на папке:

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq www.example.com
ErrorDocument 403 https://www.example.com/admin/

и я могу защитить папку с помощью Apache AuthBasic:

AuthType Basic
AuthName Administration
AuthUserFile /path/to/my/.htpasswd
Require valid-user
Satisfy all

Подобно этому, пароль всегда передается по протоколу HTTPS. Он хорошо работает, но потом я попытался отключить проверку подлинности для одного URL:

SetEnvIf Request_URI crm/index\.php$ removeme_uri
Order deny,allow
Deny from all
Allow from env=removeme_uri
Satisfy any

Этот URL-адрес не требует аутентификации, а другие делают. Так что все хорошо, но HTTPS не требуется больше, и пароль может быть отправлен в ясно!

Что я делаю неправильно здесь?

Задан 12/08/2012 в 21:27
пользователем
На других языках...                            


2 ответов

голоса
0

Это немного странно, потому что Satisfyдиректива затрагивает ограничение доступа, а также Eventhough SSLRequireSSLи SSLRequireвлияет SSL, они считаются частью ограничения доступа. Поэтому , когда вы используете , Satisfy Anyкогда разрешение доступа к URI пройти без необходимости действительного пользователя, он также сделал так , требование доступа SSL является частью этого Any. А так как варианты Satisfyлибо Allили Any, вы не можете сказать : «это всегда, но эти другие 2 любой».

Вы, возможно, придется использовать что-то вроде mod_rewrite, чтобы заставить SSL в файле Htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Ответил 12/08/2012 в 22:26
источник пользователем

голоса
1

Благодаря ответ Джона, я мог бы попробовать различные решения. Я нашел этот вопрос и применил ответ на мою ситуацию:

В главном каталоге, .htaccess содержит

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "www.example.com"
ErrorDocument 403 https://www.example.com/admin/

AuthType Basic
AuthName "Administration"
AuthUserFile /path/to/my/.htpasswd
Require valid-user
Satisfy all

И в crmподкаталоге, то .htaccess имеет:

<FilesMatch "index\.php">
    Allow from all
    Satisfy any
</FilesMatch>

Это заставляет SSL в любом случае, и разрешает доступ crm/index.php.

Ответил 15/08/2012 в 20:07
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more