Подготовка моего сайта ASP.NET / MVC для использования SSL? - PullRequest
17 голосов
/ 06 марта 2012

Я готовлюсь к установке SSL cert на мой хостинг.

Я так понимаю (и поправьте меня, если я ошибаюсь ...):

  1. Как только парни хостинга установят сертификат, я смогу просматривать свой сайт на Http или Https (ничто не помешает мне продолжать использовать Http)?

  2. Единственное, что мне нужно сделать, это добавить логику (в случае MVC, атрибуты / фильтры контроллера), чтобы заставить определенные страницы, по моему выбору, перенаправить на Https (например, добавив [RequiresHttps] атрибут умеренно).

Должен ли я беспокоиться о том, чтобы что-то сделать с этими вещами, чтобы убедиться, что я правильно использую SSL? Я не уверен, что мне нужно что-то изменить с помощью логики, связанной с:

  1. Печенье

  2. Интеграция PayPal Express

Кроме того, я планирую добавить [RequiresHttps] только на страницы корзины, оформления заказа, входа в систему, учетной записи и администрирования. Я хочу оставить страницы просмотра / покупки моего продукта на Http, так как я слышал, что использование Https сопряжено с большими расходами. Это нормально / приемлемо / нормально?

Еще один вопрос ... Я знаю, что ASP.NET хранит некоторую информацию для входа в систему в виде файла cookie Auth. Это нормально, что пользователь входит в систему на странице Https, но затем может вернуться назад и просмотреть страницу Http? Мне интересно, создает ли это слабость безопасности, так как пользователь вошел в систему и снова просматривает Http. Разрушает ли это смысл использования SSL?

Я вроде как новичок в этом ... так что помощь будет признательна.

Ответы [ 2 ]

15 голосов
/ 06 марта 2012

Начиная с ваших вопросов, по одному, (1) да ничто не помешает вам использовать для тех же страниц http ether https .

и (2) Да вам нужно добавить свою логику, на которой страница будет отображаться только как https, а какая как http . Если кому-то интересно, почему бы не показать все как https, причина в скорости, когда вы отправляете их как https, страница увеличивается, а кодирование / декодирование занимает немного больше, поэтому, если вам не нужен https, просто переключите его на http.

Автоматическое переключение между HTTP и HTTPS - очень хороший код для быстрой и простой реализации логики переключения.

печенье

Если cookie-файл связан с учетными данными пользователя, вам необходимо принудительно передать его только с защищенной страницы. Это означает, что если вы устанавливаете cookie с помощью https, этот cookie НЕ передается на незащищенную страницу, поэтому он остается безопасным, и человек в середине не может его украсть. Совет здесь заключается в том, что этот файл cookie не может быть прочитан на страницах http, поэтому вы можете знать, что пользователь является пользователем A или B только на защищенной странице.

Корзина - Продукты

Да, это нормально: оставлять товары и корзину в незащищенном соединении, потому что информация не такая уж особенная. Вы открываете страницу https, когда находитесь на реальных данных пользователя, таких как имя, адрес электронной почты, адрес и т. Д.

Auth cookie

Если вы установите его только как безопасный, тогда эти куки не будут отображаться / читать / существовать на незащищенной странице. Это проблема, если вы не делаете это только для безопасности.

Response.Cookies[s].Secure = true;

Несколько слов

Что мы делаем с защищенной и незащищенной страницей, так это то, что мы фактически разделяем пользовательские данные на две части. Тот, который безопасен, а другой нет. Таким образом, на самом деле мы используем два куки, один безопасный и один небезопасный.

Незащищенный куки-файл - это, например, тот, который связывает все продукты в корзине, или, может быть, история пользователя (что видят продукты). Кроме того, нам не важно, получит ли кто-нибудь его, потому что даже прокси-сервер может видеть по URL историю пользователя или то, что видит пользователь.

Безопасный файл cookie - это аутентификация, которая хранит важную информацию для пользователя. Таким образом, незащищенный файл cookie находится на всех страницах пользователя, безопасный - только при извлечении, входе в систему и т. Д.

Относящиеся

MSDN, Как: защитить проверку подлинности с помощью форм в ASP.NET 2.0
Настройка SSL-страницы только на странице входа в систему
Может ли какой-нибудь хакер украсть куки у пользователя и войти под этим именем на веб-сайте?

3 голосов
/ 06 марта 2012

1) Да, вы правы.

2) Да. При желании вы можете обрабатывать код HTTP 403.4 (требуется SSL) более изящно, автоматически перенаправляя клиента на HTTPS-версию страницы.

Что касается файлов cookie для аутентификации, я нашел эту статью MSDN для вас. По сути, вы можете настроить свой веб-сайт (и браузер клиента) так, чтобы он передавал только куки-файлы аутентификации через HTTPS. Таким образом, он не будет подвергаться сетевому отслеживанию по незашифрованному каналу.

Конечно, это возможно только в том случае, если все ваши действия [Authorize] предназначены только для HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...