
- •17. Безопасность в Веб-разработке
- •17.1. Безопасность в Интернете
- •17.1.1. Информационная безопасность
- •17.1.2. Виды угроз и способы борьбы с ними
- •17.1.2.1. Аутентификация (Authentication)
- •17.1.2.1.1. Подбор (Brute Force)
- •17.1.2.1.2. Недостаточная аутентификация (Insufficient Authentication)
- •17.1.2.1.3. Небезопасное восстановление паролей (Weak Password Recovery Validation).
- •17.1.2.2. Авторизация (Authorization)
- •17.1.2.2.1. Предсказуемое значение идентификатора сессии (Credential/Session Prediction)
- •17.1.2.2.2. Недостаточная авторизация (Insufficient Authorization)
- •17.1.2.2.3. Отсутствие таймаута сессии (Insufficient Session Expiration)
- •17.1.2.2.4. Фиксация сессии (Session Fixation)
- •17.1.2.3. Атаки на клиентов (Client-side Attacks)
- •17.1.2.3.1. Подмена содержимого (Content Spoofing)
- •17.1.2.3.2. Межсайтовое выполнение сценариев (Cross-site Scripting, xss)
- •17.1.2.3.3. Расщепление http-запроса (http Response Splitting)
- •17.1.2.4. Выполнение кода (Command Execution)
- •17.1.2.4.1. Переполнение буфера (Buffer Overflow)
- •17.1.2.4.2. Атака на функции форматирования строк (Format String Attack)
- •17.1.2.4.3. Внедрение операторов ldap (ldap Injection)
- •17.1.2.4.4. Выполнение команд ос (os Commanding)
- •17.1.2.4.5. Внедрение операторов sql (sql Injection)
- •17.1.2.4.6. Внедрение серверных расширений (ssi Injection)
- •17.1.2.4.7. Внедрение операторов xPath (xPath Injection)
- •17.1.2.5. Разглашение информации (Information Disclosure)
- •17.1.2.5.1. Индексирование директорий (Directory Indexing)
- •17.1.2.5.2. Идентификация приложений (Web Server/Application Fingerprinting)
- •17.1.2.5.3. Утечка информации (Information Leakage)
- •17.1.2.6.2. Отказ в обслуживании (Denial of Service)
- •17.1.2.6.3. Недостаточное противодействие автоматизации (Insufficient Anti-automation)
- •17.1.2.6.4. Недостаточная проверка процесса (Insufficient Process Validation)
- •17.1.2.7. Вирусы и приложения типа "троянский конь"
- •17.1.3. Ключевые термины
- •17.2. Xss Filter
- •17.2.1. Общее описание
- •17.2.2. Исследование эффективности xss Filter
- •17.2.2.1. Сохраненный вариант
- •17.2.2.2. Dom-based xss
- •17.2.2.3. Отраженный вариант
- •17.2.2.3.1. Внедрение кода в Javascript
- •17.2.2.3.2. Внедрение кода в тег
- •17.2.2.3.3. Внедрение кода в параметр тега
- •17.2.2.3.4. Внедрение кода в html
- •17.2.2.3.5. Использование расщепления http-ответа
- •17.2.2.4. Заключение
- •17.2.3. Ключевые термины
- •17.3. SmartScreen Filter
- •17.3.1. Общие сведения
- •17.3.2. Ключевые термины
- •17.4. Data Execution Prevention
- •17.4.1. Общие сведения
- •17.4.2. Ключевые термины
- •17.5. Https
- •17.5.1. Ssl
- •17.5.2. Https
- •17.5.3. Настройка https
- •17.5.3.1. Пример настройки для iis 6
- •17.5.3.3. Пример настройки для iis 7
- •17.5.4. Ключевые термины
- •17.6. Краткие итоги
17.5.3. Настройка https
Для того чтобы веб-запросы/ответы передавались по безопасному протоколу передачи данных HTTPS в ОС Windows необходимо настроить работу сайта через SSL (HTTPS) в IIS.
17.5.3.1. Пример настройки для iis 6
Установить бюро сертификатов (БС). Зайти в свойства сайта (рис. 17.18).
Рис. 17.18. IIS. Свойства сайта
В свойствах сайта перейти во вкладку DirectorySecurity и нажать кнопу ServerSertificate (рис. 17.19).
Рис. 17.19. IIS. DirectorySecurity
В появившемся окне нажать "Далее".
Потом выбрать пункт "Создать новый сертификат".
В следующем окне оставить все как есть (Prepare the request now, but send it later).
В последующих окнах можно ввести дополнительную информацию. В одном из окон нужно будет ввести имя для файла, содержащего запрос на сертификат.
Нужно зайти на "http://имя_сервера/certsrv" для создания сертификата из запроса.
Перейти по ссылке Request a certificate.
Потом перейти по ссылке Advanced certificate request.
И, наконец, Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.
В появившейся форме в поле Saved Request вставить содержание текстового файла с запросом на сертификат, сохраненный ранее (рис. 17.20). Нажать Submit.
Рис. 17.20. Microsoft Certificate Services
Будет выведен отчет о том, что сертификат передан на рассмотрение. Также отобразится идентификатор сертификата. Его надо запомнить.
Далее нужно зайти в панель управления сертификатами и разрешить созданный сертификат (панель управления / администрирование / управление сертификатами) (рис. 17.21).
Рис. 17.21. Certification Authority
Зайти в раздел ожидающих для рассмотрения сертификатов. Выбрать нужный сертификат и разрешить его.
Опять идем на "http://имя_сервера/certsrv", переходим по ссылке View the status of a pending certificate request. Выбираем сертификат и жмем Download certificate. Сохраняем сертификат.
Потом опять идем в свойства сайта во вкладку безопасность каталога. Выбираем сертификаты сервера (рис. 17.22).
Рис. 17.22. IIS Sertificate Wizard
Заполняем все поля (рис. 17.23).
Рис. 17.23. IIS Sertificate Wizard
В данном поле пишем путь к файлу сертификата.
Сайт теперь доступен по https.
Замечание: Если сайт работает не на стандартном TCP порту, а например, на 90. То по протоколу https он (т.е. 90-ый TCP порт) не указывается. По https указываются ssl порты (стандартный: 443).
Пример:
Сайт работает на 90-ом TCP порту и на 443 SSL. Тогда нужно обращаться к сайту по ссылке "https://имя_сервера/".
Сайт работает на 90-ом TCP порту и на 86787 SSL. Тогда нужно обращаться к сайту по ссылке "https://имя_сервера:86787/".
17.5.3.3. Пример настройки для iis 7
Зайти в сертификаты сервера (рис. 17.24).
Рис. 17.24. IIS 7.0
Создать "самозаверенный" сертификат (рис. 17.25).
Рис. 17.25. Создание сертификата в IIS 7.0
Зайти в привязки сайта (рис. 17.26).
Рис. 17.26. Создание сертификата в IIS 7.0
Добавить привязку по https. В качестве сертификата выбрать созданный ssl сертификат (рис. 17.27).
Рис. 17.27. Создание сертификата в IIS 7.0