Каков чистый / простой способ обеспечить безопасность страницы?
Вопрос
Предположим, у вас есть форма, которая собирает и отправляет конфиденциальную информацию, и вы хотите убедиться, что к ней никогда не будет доступа с помощью небезопасных (не HTTPS) средств, как вам лучше всего обеспечить соблюдение этой политики?
Решение
Я думаю, что самое пуленепробиваемое решение - сохранить код только в корневом каталоге вашего SSL-документа.Это гарантирует, что вы (или другой разработчик в будущем) не сможете случайно создать ссылку на небезопасную версию формы.Если у вас есть форма как на HTTP, так и на HTTPS, вы можете даже не заметить, если неправильная форма будет использована непреднамеренно.
Если это невыполнимо, то я бы принял по крайней мере две меры предосторожности.Перепишите URL-адрес Apache и проверьте в своем коде, чтобы убедиться, что сеанс зашифрован - проверьте заголовки HTTP.
Другие советы
Если вы используете Apache, вы можете поместить RewriteRule
в вашем .htaccess
, вот так:
RewriteCond %{HTTPS} "off"
RewriteRule /mypage.html https://example.com/mypage.html
Взгляните на это: http://www.dotnetmonster.com/Uwe/Forum.aspx/asp-net/75369/Enforcing-https
Редактировать:Здесь показаны решения с точки зрения IIS, но вы должны иметь возможность настроить для этого практически любой веб-сервер.
В IIS?Перейдите в настройки безопасности и нажмите "Требуется безопасное подключение".В качестве альтернативы вы можете проверить переменные сервера в разделе загрузка страницы и перенаправить на защищенную страницу.
Я бы посоветовал посмотреть запрос в коде, который отображает форму, и, если он не использует SSL, перенаправить на URL https.
Вы также можете использовать правило rewite в Apache для перенаправления пользователя.
Или же вы могли бы просто не обслуживать страницу по HTTP и сохранить ее только в корневом каталоге документа вашего HTTPS-сайта.