Инструменты пользователя

Инструменты сайта


ru:tips:httpslogin

Принудительное использование 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 и сеанс будет утерян.
ru/tips/httpslogin.txt · Последнее изменение: 2011-03-09 19:16 — Aleksandr

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki