Настройте CSP в приложении Ember CLI, которое использует http-mock

Я использую http-mock с Ember CLI, как предлагается на http://www.ember-cli.com/#ember-data. Я понимаю основную концепцию CSP, но я не понимаю ее конфигурации в приложении Ember CLI.

Как настроить приложение для приема запросов на localhost:4200/api/, чтобы избежать этого во время разработки:

Content Security Policy violation: {
    "csp-report": {
        "document-uri":"http://localhost:4200/products",
        "referrer":"",
        "violated-directive":"style-src 'self'",
        "effective-directive":"style-src",
        "original-policy":"default-src 'none'; script-src 'self' 'unsafe-eval' localhost:35729 0.0.0.0:35729; font-src 'self'; connect-src 'self' ws://localhost:35729 ws://0.0.0.0:35729 http://0.0.0.0:4200/csp-report; img-src 'self'; style-src 'self'; media-src 'self'; report-uri http://0.0.0.0:4200/csp-report;",
        "blocked-uri":"",
        "source-file":"chrome-extension://alelhddbbhepgpmgidjdcjakblofbmce",
        "line-number":1,"column-number":20481,"status-code":200
    }
}

Ответ 1

Вы можете настроить политику безопасности контента, отредактировав config/environment.js. Я верю в ваш случай, connect-src имеет отношение к ошибке, которую бросает (изменение: выглядит как style-src, возможно, с помощью Chrome Extension Awesome Screenshot). Добавление * позволит ему подключиться ко всему.

var ENV = {

  ...

  contentSecurityPolicy: {
    'default-src': "'none'",
    'script-src': "'self'",
    'font-src': "'self'",
    'connect-src': "'self' *",
    'img-src': "'self'",
    'style-src': "'self' *",
    'media-src': "'self'"
  }
}

Или, более конкретно, вы можете добавить:

...
'connect-src': "'self' 'localhost:4200'",
...

Кроме того, если вы только хотели добавить это в свою среду разработки, поместите его в:

if (environment === 'development') {
  ENV.contentSecurityPolicy = {
    ...(policies)...
  }
}

Дополнительная информация о CSP в ember-cli: https://www.npmjs.com/package/ember-cli-content-security-policy.

Дополнительная информация о CSP в целом: http://content-security-policy.com/