Принудительное использование HTTPS при авторизации
Используя mod_rewrite
, можно принудительно заставить пользователей авторизоваться через HTTPS, что предотвратит передачу паролей в чистом виде через интернет.
Возможно вы сперва захотите прочесть общую информацию об URL-преобразовании.
Предполагается, что вы уже установили поддержку HTTPS для своей вики, сделав её доступной через HTTP и HTTPS на том же самом адресе. По причинам производительности только вход в систему и обновление профиля должны быть вызваны по HTTPS, в то время как все «нормальные» действия вики будут продолжать работать по HTTP.
Так как у вас должны быть настроены куки через HTTPS, чтобы работать по HTTP также, вы должны сначала отключить опцию «securecookie», а затем установить перенаправление в вашем файле .htaccess
:
# Переключитесь, чтобы защититься при логине, в профиле и в администраторских действиях RewriteEngine On RewriteCond %{HTTPS} !on RewriteCond %{QUERY_STRING} do=(log|profile|admin) RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,QSA,L] # Вернуться к незащищенному выставленному действию RewriteCond %{HTTPS} on RewriteCond %{QUERY_STRING} (do=show|^$) RewriteCond %{REQUEST_METHOD} GET RewriteRule ^(.*) http://%{HTTP_HOST}/$1 [R,QSA,L]
Возможно вам нужно будет изменить ${HTTP_HOST}
на ${ИМЯ_СЕРВЕРА}
, где server name соответствует имени хоста в вашем сертификате SSL.
Примечание: вышеупомянутые переключатели назад к не-SSL на выставочном действии только. Это означает, что американские горы не могли бы сразу произойти после входа в систему, но гарантируют, что не будет никакого «смешанного контента» предупреждения во время работы SSL.
- Пожалуйста, отметьте: вы должны отключить «securecookie» в
/conf/dokuwiki.php
для вышеупомянутого кода, чтобы работало. Иначе ваши входы в систему не будут успешно регистрироваться. Это потому, что с включённым «securecookie» куки сеанса не могут быть отправлены через HTTPS и сеанс будет утерян.