DevGang
Авторизоваться

Проверяем CSP из командной строки 

Спецификация политики безопасности контента - это замечательный интерфейсный инструмент безопасности, помогающий предотвратить XSS и другие типы атак. Я бы сказал, что на каждом сайте должен быть реализован как можно более конкретный CSP. Если вы не знакомы с CSP, вот небольшой пример:

Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com

Если связанный ресурс или контент на странице не соответствует заданному правилу CSP, он не будет загружен. Конечно, получить массивный сайт для прохождения одного CSP сложно - просто посетите Facebook:

Браузеры предоставляют вам информацию об ошибках и предупреждениях CSP в веб-консоли, но это не помогает разработчикам предотвращать проблемы перед началом работы. Введите seespee - утилиту Node.js, которая позволяет проверять CSP из командной строки!

Чтобы получить директивы CSP для данной страницы, вы просто запускаете seespee с URL:

seespee https://davidwalsh.name/demo/csp-example.php

И получим:

Content-Security-Policy:
  default-src 'self';
  frame-ancestors 'self';
  frame-src 'none';
  img-src 'none';
  media-src 'self' *.example.com;
  object-src 'none';
  report-uri https://example.com/violationReportForCSP.php;
  script-src 'self' 'unsafe-inline' cdnjs.cloudflare.com;
  style-src 'self' 'unsafe-inline';

Если вы хотите проверить, валиден ли CSP данной страницы, чтобы вы могли проверять это во время сборки или в CI, добавьте флаг --validate:

seespee https://davidwalsh.name/demo/csp-example.php --validate

И в результате получите: 

✘ ERROR: Validation failed: The Content-Security-Policy does not whitelist the following resources:
            script-src cdnjs.cloudflare.com;
              https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js

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

Вы также можете использовать seespee из скриптов Node.js:

var seespee = require('seespee');
seespee('https://davidwalsh.name/demo/csp-example.php').then(function(result) {
  console.log(result.contentSecurityPolicy);
  // default-src \'none\'; style-src https://assets-cdn.github.com; ...
});

Очень полезно иметь такую ​​утилиту, как seespee, и не проверять браузер вручную. Надежный CSP может быть сложно создать, но еще сложнее поддерживать его при изменении сайта. Используйте seespee и CI для предотвращения нежелательных CSP и сбоев сайта!

Источник:

#Браузеры
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу