Политика безопасности контента — это настоящая боль. — Дэйв Гилбертсон

Я читал о политике безопасности контента (CSP), которая позволяет вам определять, откуда загружаются JavaScript, CSS и шрифты. Вот несколько ссылок на документацию:

Мне удалось построить определение CSP только методом проб и ошибок. Для каждой страницы, на которую я добавил шаблон CSP, я тестировал страницу с активной консолью разработчика Chrome, чтобы увидеть любые ошибки. Затем я бы добавил домен в соответствующий раздел (скрипт, css или шрифт).

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

CSP, к которому я пришел (на данный момент), показан ниже:

<head>
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy"
content="img-src 'self' 'unsafe-inline' https://imperavi.com; font-src 'self' 'unsafe-inline' data: https://imperavi.com https://maxcdn.bootstrapcdn.com; default-src 'self'; script-src 'self' 'unsafe-inline' https://imperavi.com http://code.jquery.com https://code.jquery.com https://cdnjs.cloudflare.com http://cdnjs.cloudflare.com https://maxcdn.bootstrapcdn.com 'unsafe-eval'; style-src 'self' 'unsafe-inline' https://imperavi.com http://code.jquery.com https://code.jquery.com https://cdnjs.cloudflare.com http://cdnjs.cloudflare.com https://maxcdn.bootstrapcdn.com;">

Это решение, но не особенно элегантное или простое в управлении.

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

Еще раз хочу поблагодарить Дейва Гилбертсона за его прекрасную публикацию о межсайтовом скриптинге. Я даже не знал о существовании CSP, пока не прочитал пост Дэйва.