.htaccess „Povolit z env“ zakáže SSLRequire

hlasů
33

Používání Apache, jsem přinutit HTTPS na složky:

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

a já chránit složku pomocí Apache AuthBasic:

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

Stejně jako tento, heslo je vždy odeslána přes HTTPS. Funguje to dobře, ale pak jsem se snažil zakázat ověřování na jedné adrese:

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

Tato adresa URL není požádat o ověření, a ty ostatní. Takže je všechno v pořádku, ale HTTPS není již potřeba, a heslo může být odeslán v pořádku!

Co dělám špatně?

Položena 12/08/2012 v 21:27
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Je to trochu divné, protože Satisfysměrnice se týká omezení přístupu, a přestože SSLRequireSSLa SSLRequireovlivnit SSL, oni jsou považovány za součást omezení přístupu. Takže pokud používáte Satisfy Any-li umožnit přístup k URI projít bez nutnosti platného uživatele, ale také to, aby požadavek na připojení SSL je součástí toho Any. A protože možností Satisfyje buď Allnebo Any, nemůžete říct „tohle vždy, ale tyto další 2 žádné“.

Možná budete muset použít něco jako mod_rewrite vynutit SSL ve vašem souboru .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Odpovězeno 12/08/2012 v 22:26
zdroj uživatelem

hlasů
1

Díky Jonovu odpověď, mohl bych zkusit různá řešení. Zjistil jsem tuto otázku a aplikoval odpověď na mé situaci:

V hlavním adresáři, .htaccess obsahuje

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

A v crmpodadresáři, .htaccess má:

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

To nutí SSL v každém případě, a umožňuje přístup k crm/index.php.

Odpovězeno 15/08/2012 v 20:07
zdroj uživatelem

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