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

Вид: 32621|Ответ: 2

[уязвимость безопасности] Отсутствующие или небезопасные уязвимости в заголовке «Content-Security-Policy»

[Скопировать ссылку]
Опубликовано 11.06.2021 10:36:39 | | | |
Заголовок HTTP-ответа Content-Security-Policy позволяет сайту контролировать, какие ресурсы загружает пользовательский агент для конкретной страницы. За исключением особых случаев, набор политик в основном включает указание исходного и скриптового конечных точек сервера. Это поможет предотвратить атаки на скрипты между сайтами

Документация:Вход по гиперссылке виден.

В этой статье описывается Политика безопасности контента W3C, или сокращённо CSP. Как следует из названия, эта спецификация связана с безопасностью контента и в основном используется для определения, какие ресурсы может загружать страница, а также для снижения частоты XSS.

Ранний Chrome поддерживал CSP через заголовок ответа X-WebKit-CSP, Firefox и IE поддерживали X-Content-Security-Policy, а Chrome25 и Firefox23 начали поддерживать стандартную политику безопасности контента.

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


Сначала создадим новый проект ASP.NET MVC, создадим новый скрипт js и динамически загрузим js-код статистики Baidu, следующим образом:




Как показано на рисунке выше, мы можем увидеть JS-скрипт-код, успешно введённый в стороннюю компанию (Baidu), если в стороннем JS присутствует вредоносный код, например, кража cookie, модификация контента, перемещение ссылок и т.д.

Как остановить появление небезопасных сторонних JS-скриптов?

Обходной путь

Головка откликаДобавить «Политику безопасности контента»Например:

Content-Security-Policy: default-src 'self' Вход по гиперссылке виден.;
                         connect-src «нет»;
Content-Security-Policy: connect-src Вход по гиперссылке виден.
                         script-srcВход по гиперссылке виден.

Директива
Пример значения инструкции
иллюстрировать
default-src
'self' cnd.a.com
Определите стандартную политику загрузки для всех типов ресурсов (JS, IMAGE, CSS, WEB FONT, AJAX-запросы, iframes, мультимедиа и др.) и используйте её по умолчанию для определённых типов ресурсов, если отдельной политики нет.
script-src
'self' js.a.com
Определите политику загрузки для JavaScript.
Стиль-SRC
'self' css.a.com
Определите политику загрузки для стиля.
IMG-SRC
«я» img.a.com
Определите политику загрузки для изображений.
CONNECT-SRC
«я»
Политики загрузки для запросов от Ajax, WebSockets и других. Если это не разрешено, браузер имитирует ответ со статусом 400.
font-src
font.a.com
Политика загрузки для WebFont.
object-src
«я»
<object><embed> <applet> Политики загрузки плагинов, таких как flash, были введены для тегов, таких как , или .
Media-src
media.a.com
<audio> <video> Стратегии загрузки для HTML-мультимедиа, введённые для тегов, таких как или .
frame-src
«я»
Политика загрузки кадров.
песочница
Разрешённые формы
Включите песочницу (аналогичную свойству песочницы iframe) для запрошённого ресурса.
report-uri
/report-uri
Сообщите браузеру, на какой адрес отправлять данные журнала, если запрошенный ресурс не разрешен политикой. Особенное: если вы хотите, чтобы браузер сообщал только о логах и не блокировал ничего, можно использовать заголовок Content-Security-Policy-Report-Only.

Давайте изменим файл web.config проекта, чтобы добавить пользовательский заголовок ответа следующим образом:

Повторите проект, как показано ниже:



Браузер успешно заблокировал загрузку сторонних js-скриптов:

Отказался загружать скрипт 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', так как он нарушает следующую директиву Политики безопасности контента: "script-src 'self' http://localhost:56888/ ". Обратите внимание, что 'script-src-elem' не был явно установлен, поэтому 'script-src' используется как запасной вариант.
(Конец)




Предыдущий:ASP.NET Порядок выполнения MVC HttpApplication
Следующий:Кратко говоря о популярной энциклопедии браузера User-Agent
Опубликовано 17.12.2021 22:38:43 |
Учитесь !!!!!!!!!!!!!!
Опубликовано 18.10.2022 17:16:34 |
Я давно ищу и немного учусь
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com