HTTPS kimlik doğrulamasını zorlamanın en iyi yolunun ne olduğunu merak ediyorum. HTTPS'yi bir dizinde zorlama ve HTTPS kimlik doğrulamasını zorlama
benim .htaccess dosyasında bu var
:AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
Kimlik çalışır, ancak açık olarak şifre göndererek, 80 numaralı bağlantı noktası üzerinde kimliğini doğrular.
Ben de eşdeğer HTTPS isteklerine tüm HTTPS olmayan isteklerini yönlendirmek için Yönlendirme Kuralı eklemek düşündüm:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteBase /~david/
RewriteRule ^(.*)$ https://myserver.tld/~david/$1 [R,L]
Bu aynı zamanda çalışır, ancak 80 numaralı bağlantı noktasında ilk authenicates ardından yönlendirir, sonra tekrar authenicates Bağlantı noktası 443. Bağlantı noktası 80'de kimlik doğrulaması yapmak istemiyorum, çünkü parola açık metinde gönderilecek. Hemen HTTPS'ye yönlendirmenin ve sonra doğrulamanın iyi bir yolunu bulamadım.
<?php
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
?>
budur: benim sunucunun/'bir 403.php PHP komut dosyası
AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
ErrorDocument 403 /403.php
SSLRequireSSL
Ve sahip: Ben bunu nasıl anlamaya
tek yolu bunu gereğidir istenen davranış. SSL gerektirir, bu yüzden 80 numaralı bağlantı noktasındaki dizine erişmeye çalıştığınızda, özel bir hata belgesine sahiptir ve bu belgeyi sayfayı HTTPS'ye yönlendirir.
Bu kulağa benzer. Bunu başarmanın daha iyi bir yolu var mı?
Sanırım doğru anladınız. Bu en iyi yol. – bmb