.htaccess «Να επιτρέπεται από το env» απενεργοποιεί 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

Χάρη στην απάντηση του Jon, θα μπορούσατε να δοκιμάσετε διαφορετικές λύσεις. Βρήκα αυτό το ζήτημα και να εφαρμόσει την απάντηση για την περίπτωσή μου:

Στο κύριο κατάλογο, το .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