Как сделать сайт защищенным с помощью https - PullRequest
87 голосов
/ 05 февраля 2010

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

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

Если вы говорите https, у меня есть несколько вопросов:

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

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

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

Спасибо

  • Радж

Ответы [ 7 ]

48 голосов
/ 05 февраля 2010

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

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

Является ли SSL и https одним и тем же ..

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

Нужно ли мне обращаться с кем-то, чтобы получить какая-то лицензия или что-то в этом роде.

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

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

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

8 голосов
/ 05 февраля 2010

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

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

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

Нужно ли менять код / ​​Конфиг

Да. Ну, может быть нет. Возможно, вы захотите, чтобы эксперт сделал это для вас.

Является ли SSL и https одним и тем же ...

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

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

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

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

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

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

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

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

7 голосов
/ 05 февраля 2010

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

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

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

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

3 голосов
/ 05 февраля 2010

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

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

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

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

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

Является ли SSL и https одним и тем же ...

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

Нужно ли мне обращаться к кому-то, чтобы получить лицензию или еще что-то?

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

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

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

1 голос
/ 05 февраля 2010

@ 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 и не может иметь префикс ~/, в отличие от большинства других атрибутов конфигурации типа пути.

1 голос
/ 05 февраля 2010

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

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

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

0 голосов
/ 15 ноября 2013

Попробуйте создать загрузочный каталог на 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
}
?>

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

...