.htaccess "env izin ver" SSLRequire devre dışı bırakır

oy
33

Apache kullanarak, bir klasöre HTTPS zorlamak:

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

ve ben Apache AuthBasic kullanarak klasörü korumak:

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

Bunun gibi, şifre her zaman HTTPS üzerinden gönderilir. Bu iyi çalışıyor, ama sonra tek bir URL için kimlik doğrulamayı devre dışı bırakmak için çalıştı:

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

Bu URL, kimlik doğrulama için istemez, ve diğerleri yok. Yani her şey yolunda ancak HTTPS artık gerekli değildir ve parolasının gönderilebilir!

Yanlış burada ne işim var?

Oluştur 12/08/2012 saat 21:27
kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Bunun nedeni, biraz garip Satisfydirektif erişim kısıtlamaları etkiler ve satışlardaki SSLRequireSSLve SSLRequireSSL etkileyen, onlar erişim kısıtlaması parçası olarak kabul ediyoruz. Kullandığınızda Yani Satisfy Anygeçerli kullanıcı için gerek kalmadan geçmesine bir URI erişime izin verirken, aynı zamanda o kadar SSL erişim gereksinimi bunun bir parçası yapılmış Any. Ve seçenekleri beri Satisfyya Allya Any, sen "her zaman bu bir, ancak herhangi bir bu 2" diyemeyiz.

Eğer htaccess dosyasında SSL zorlamak için mod_rewrite gibi bir şey kullanmak gerekebilir:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Cevap 12/08/2012 saat 22:26
kaynak kullanıcı

oy
1

Teşekkür Jon'un cevabı, ben farklı çözümler deneyebilirim. Bulduğum bu soruyu ve benim durum cevabını uygulamalı:

Ana dizinde, .htaccess içeriyor

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

Ve de crmalt dizini, .htaccess vardır:

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

Her halükarda SSL zorlar ve erişime izin verir crm/index.php.

Cevap 15/08/2012 saat 20:07
kaynak kullanıcı

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