Как сделать сайт защищенным с помощью https

87

Мне нужно создать небольшое веб-приложение для компании, чтобы поддерживать свои бизнес-данные ... Только сотрудники компании будут использовать его, но мы планируем разместить его в общественном достоянии, чтобы сотрудники могли подключаться к приложению из разных мест. . (До сих пор я создавал веб-приложения, которые размещаются только внутри компании)

Мне интересно, нужно ли мне использовать защищенное соединение (https) или достаточно аутентификации с помощью форм.

Если вы скажете https, у меня возникнут вопросы:

  1. Что мне делать, чтобы подготовить свой сайт к https. (Нужно ли менять код / ​​конфигурацию)
  2. SSL и https - это одно и то же ...
  3. Нужно ли мне подавать заявку на получение лицензии или чего-то подобного?
  4. Нужно ли мне защищать все мои страницы или только страницу входа ...

Я искал ответ в Интернете, но мне не удалось получить все эти моменты ... Любой технический документ или другие ссылки также были бы полезны ...

Не стесняйтесь спрашивать, нужна ли вам дополнительная информация.

Благодарность

  • Раджа
Король
источник
Привет всем ... Спасибо всем ... Все ваши ответы были очень полезными ... Было бы несправедливо выбрать здесь один ответ ... (ТАК должна быть предусмотрена такая ситуация). поэтому я выбрал один ответ и проголосовал за остальные ... Выбранный ответ так же важен, как и другие ответы ...
Король
3
Дополнительные меры предосторожности, в зависимости от того, насколько конфиденциальной является информация (например, личная информация может подпадать под действие федерального закона штата) и какие у вас есть отношения и договор с компанией, вы можете захотеть подумать о том, несете ли вы ответственность, если кто-то взламывает сайт.
huynhjl 05
После того, как сертификат установлен на вашем сервере, чтобы добавить https на свой веб-сайт в IIS, все, что вам нужно сделать, это перейти на сайт и «Изменить привязки», выбрать https и выбрать сертификат.
bgmCoder

Ответы:

49

Что мне делать, чтобы подготовить свой сайт к https. (Нужно ли менять код / ​​конфигурацию)

Вы должны помнить о передовых методах безопасного кодирования (вот хорошее введение: http://www.owasp.org/index.php/Secure_Coding_Principles ), в противном случае все, что вам нужно, это правильно настроенный сертификат SSL.

SSL и https - это одно и то же ..

В значительной степени да.

Нужно ли мне подавать заявку на получение лицензии или чего-то подобного?

Вы можете купить сертификат SSL в центре сертификации или использовать самозаверяющий сертификат. Те, которые можно купить, сильно различаются по цене - от 10 до сотен долларов в год. Один из них вам понадобится, например, если вы создадите интернет-магазин. Самозаверяющие сертификаты - жизнеспособный вариант для внутреннего приложения. Вы также можете использовать один из них для разработки. Вот хороший учебник о том, как настроить самозаверяющий сертификат для IIS: Включение SSL в IIS 7.0 с использованием самозаверяющих сертификатов

Нужно ли мне защищать все мои страницы или только страницу входа в систему?

Используйте HTTPS для всего, а не только для входа в систему. Это не будет слишком много накладных расходов, и это будет означать, что данные, которые пользователи отправляют / получают из вашего удаленно размещенного приложения, не могут быть прочитаны внешними сторонами, если они будут перехвачены. Даже Gmail теперь по умолчанию включает HTTPS.

Rowlf
источник
1
Вы также можете получить бесплатные сертификаты TLS, то есть от Let's
encrypt
8

Какие бизнес-данные ? Коммерческие секреты или просто вещи, которые они не хотят, чтобы люди видели, но если бы это стало известно, это не было бы большой проблемой? Если мы говорим о коммерческой тайне, финансовой информации, информации о клиентах и ​​прочем, это обычно конфиденциально. Тогда даже не идите по этому пути.

Мне интересно, нужно ли мне использовать защищенное соединение (https) или достаточно аутентификации с помощью форм.

Всегда используйте безопасное соединение.

Нужно ли менять код / ​​конфигурацию

Да. Может быть, и нет. Вы можете попросить специалиста сделать это за вас.

SSL и https - это одно и то же ...

В основном да. Люди обычно относятся к этим вещам как к одному и тому же.

Нужно ли мне подавать заявку на получение лицензии или чего-то подобного?

Вероятно, вы захотите, чтобы ваш сертификат был подписан центром сертификации. Это будет стоить вам или вашему клиенту немного денег.

Нужно ли мне защищать все мои страницы или только страницу входа ...

Используйте https повсюду. Производительность обычно не является проблемой, если сайт предназначен для внутренних пользователей.

Я искал ответ в Интернете, но мне не удалось получить все эти моменты ... Любой технический документ или другие ссылки также были бы полезны ...

Начните здесь для некоторых указателей: http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Обратите внимание, что SSL - это малая часть обеспечения безопасности вашего веб-сайта, когда он доступен из Интернета. Это не предотвращает большинство видов взлома.

Huynhjl
источник
+1 за разумный совет о полной безопасности и предотвращении катастроф, спрашивая, является ли информация очень конфиденциальной, и рекомендуя не
размещать
7

Я думаю, вы запутались с аутентификацией вашего сайта и SSL.

Если вам нужно перевести свой сайт на SSL, вам нужно будет установить сертификат SSL на свой веб-сервер. Вы можете купить сертификат для себя в одном из таких мест, как Symantec и т. Д. Сертификат будет содержать вашу пару открытого / закрытого ключей, а также другие вещи.

Вам не нужно ничего делать в исходном коде, и вы все равно можете продолжать использовать свою аутентификацию формы (или любую другую) на своем сайте. Просто любой обмен данными, который происходит между веб-сервером и клиентом, будет зашифрован и подписан с использованием вашего сертификата. Люди будут использовать безопасный HTTP (https: //) для доступа к вашему сайту.

Просмотрите это для получения дополнительной информации -> http://en.wikipedia.org/wiki/Transport_Layer_Security

Бхаскар
источник
3

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

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

Что мне делать, чтобы подготовить свой сайт к https. (Нужно ли менять код / ​​конфигурацию)

Чтобы включить SSL (Secure Sockets Layer) для вашего веб-сайта, вам необходимо настроить сертификат, код или конфигурация не изменяются.

Я включил SSL для внутреннего веб-сервера, используя OpenSSL и ActivePerl из этого онлайн-руководства . Если это используется для более широкой аудитории (моя аудитория составляла менее 10 человек) и является общественным достоянием, я предлагаю поискать профессиональные альтернативы.

SSL и https - это одно и то же ...

Не совсем, но они идут рука об руку! SSL гарантирует, что данные шифруются и дешифруются взад и вперед, пока вы просматриваете веб-сайт, httpsэто URI, который необходим для доступа к защищенному веб-сайту. Вы заметите, что при попытке доступа http://secure.mydomain.comон отображает сообщение об ошибке.

Нужно ли мне подавать заявку на получение лицензии или чего-то подобного?

Вам не нужно будет получать лицензию, а скорее сертификат. Вы можете изучить компании, которые предлагают профессиональные услуги по обеспечению безопасности веб-сайтов, например VeriSign .

Нужно ли мне защищать все мои страницы или только страницу входа ...

После того, как ваш сертификат будет включен, mydomain.comкаждая страница, попадающая под него, *.mydomain.comбудет защищена.

Энтони Форлони
источник
1

4. Нужно ли мне защищать все мои страницы или только страницу входа ...

Просто держите страницу входа под https

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

Балалакшми
источник
3
Обслуживание только части вашего сайта по TLS небезопасно. Активный злоумышленник может использовать SSLStrip и иметь доступ к якобы защищенным страницам.
Tobu
1

@balalakshmi упомянул о правильных настройках аутентификации. Аутентификация - это только половина проблемы, вторая половина - авторизация.

Если вы используете аутентификацию с помощью форм и стандартные элементы управления, <asp:Login>вам нужно сделать несколько вещей, чтобы гарантировать, что только ваши аутентифицированные пользователи могут получить доступ к защищенным страницам.

В web.config, в <system.web>разделе вам нужно по умолчанию отключить анонимный доступ:

<authorization>
 <deny users="?" />
</authorization>

Любые страницы, к которым будет осуществляться анонимный доступ (например, сама страница Login.aspx), должны иметь переопределение, которое повторно разрешает анонимный доступ. Для этого требуется <location>элемент и должно быть расположено на <configuration>уровне ( вне в <system.web>секцию), как это:

<!-- Anonymous files -->
<location path="Login.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Обратите внимание, что вам также необходимо разрешить анонимный доступ к любым таблицам стилей или скриптам, которые используются анонимными страницами:

<!-- Anonymous folders -->
<location path="styles">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Имейте в виду, что pathатрибут местоположения относится к web.configпапке и не может иметь ~/префикса, в отличие от большинства других атрибутов конфигурации типа пути.

Devstuff
источник
-2

Попробуйте создать загрузочный каталог на PHP, как в

<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$privacy = ['BOOTSTRAP_CONFIG'];
$shell   = ['BOOTSTRAP_OUTPUT'];
enter code here
if $ip == $privacy {
function $privacy int $ip = "https://";
} endif {
echo $shell
}
?>

Это в основном это!

Ce0ns
источник
3
На самом деле это не совсем ответ на вопрос
Андреас