Как работают Content Security Policy (CSP) заголовки и атрибуты вроде integrity в теге <script>?

Этот вопрос проверяет знание механизмов безопасности веб-приложений, таких как Content Security Policy (CSP) и использование атрибута integrity. Он также изучает, как эти методы помогают защитить веб-приложения от атак.

Короткий ответ

Content Security Policy (CSP) — это механизм безопасности, который помогает предотвратить различные типы атак, такие как XSS (Cross-Site Scripting), ограничивая, какие ресурсы могут загружаться на странице. Заголовок CSP определяет, откуда разрешено загружать скрипты, стили и другие ресурсы. 

 

Атрибут integrity в теге <script> используется для проверки целостности загружаемого скрипта, чтобы убедиться, что он не был изменен. Если хэш скрипта не совпадает с указанным значением, браузер отклонит его загрузку.

Длинный ответ

Content Security Policy (CSP) — это мощный инструмент безопасности, который позволяет веб-разработчикам контролировать, какие ресурсы могут загружаться и исполняться на их страницах. CSP помогает предотвратить атаки типа Cross-Site Scripting (XSS) и другие угрозы безопасности, создавая политики для загрузки ресурсов.

 

Пример использования CSP:
CSP настраивается через HTTP-заголовок Content-Security-Policy. Вот пример:

 

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com;

 

Этот заголовок говорит браузеру разрешать загрузку ресурсов только с того же источника ('self') или с доверенного CDN. Это ограничивает возможности злоумышленников загрузить вредоносный скрипт.

 

Атрибут integrity:
Атрибут integrity используется в тегах <script> и <link> для проверки целостности загружаемого ресурса. Он содержит хэш значения файла, который должен совпадать с хэшом загруженного ресурса. Пример:

 

<script src="https://trusted.cdn.com/script.js"        
	integrity="sha384-oqVuAfXRKap7fdgcCY5Dn4Q3U8d6X7Ww1yq1GZ7E4j6Ic1ZrPy1X99AY2p3a8HnB"        		 		
	crossorigin="anonymous">
</script>

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

 

Объединение CSP и integrity:
Использование CSP в сочетании с атрибутом integrity создает мощный уровень защиты для веб-приложений. Это позволяет не только контролировать, откуда могут загружаться ресурсы, но и проверять их целостность перед выполнением. Это особенно важно в современных веб-приложениях, где часто используются сторонние библиотеки и фреймворки.

 

Таким образом, понимание и правильное применение CSP и атрибута integrity помогает разработчикам защищать свои приложения от множества распространенных уязвимостей.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • HTMl

    HTMl

Ключевые слова

Подпишись на React Developer в телеграм