.htaccess „Erlauben von env“ deaktiviert SSLRequire

stimmen
33

Mit Apache, ich zwinge HTTPS auf einen Ordner:

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

und schützt den Ordner Apache AuthBasic mit:

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

Wie dies wird das Passwort immer über HTTPS gesendet. Es funktioniert gut, aber dann habe ich versucht, die Authentifizierung für eine einzelne URL zu deaktivieren:

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

Diese URL fragt nicht für die Authentifizierung und die anderen tun. So ist alles gut, aber HTTPS ist nicht mehr erforderlich, und das Kennwort in Klartext gesendet werden!

Was mache ich hier falsch?

Veröffentlicht am 12/08/2012 um 21:27
vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Das ist irgendwie seltsam, weil die SatisfyRichtlinie Zugangsbeschränkungen betrifft, und obwohl die SSLRequireSSLund SSLRequireSSL beeinflussen, sind sie Teil der Zugangsbeschränkung betrachtet. Also , wenn Sie verwenden , Satisfy Anywenn der Zugriff auf einen URI ermöglicht , ohne die Notwendigkeit durchläuft für valid-user, es machte es auch so die SSL - Zugriffsanforderung eines Teil davon ist Any. Und da die Optionen für Satisfyentweder Alloder Any, kann man nicht sagen , „diese immer, aber diese anderen 2 any“.

Sie können so etwas wie mod_rewrite verwenden SSL zu zwingen, in der .htaccess-Datei:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Beantwortet am 12/08/2012 um 22:26
quelle vom benutzer

stimmen
1

Dank Jon Antwort konnte ich verschiedene Lösungen ausprobieren. Ich fand diese Frage und angewandt , um die Antwort auf meine Situation:

Im Hauptverzeichnis enthält die .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

Und im crmUnterverzeichnis, die .htaccess hat:

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

Es zwingt den SSL in jedem Fall und erlaubt den Zugang zu crm/index.php.

Beantwortet am 15/08/2012 um 20:07
quelle vom benutzer

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