API извлечения расширений Chrome - Политика безопасности контента - PullRequest
0 голосов
/ 02 марта 2019

Мое расширение chrome должно извлекать некоторые удаленные ресурсы из стороннего API через HTTP-запрос.

const getBoards = callback => {
fetch("https://gloapi.gitkraken.com/v1/glo/boards", {
  credentials: "include"
})
  .then(response => { ... })
  .catch(err => { ... });
};

К сожалению, оно выдает следующую ошибку:

Отказ от подключения к 'https://gloapi.gitkraken.com/v1/glo/boards', поскольку он нарушает следующую директиву политики безопасности содержимого: "default-src 'self'".Обратите внимание, что «connect-src» не был задан явно, поэтому «default-src» используется в качестве запасного варианта.

После небольшого исследования я обнаружил, что требования к Chrome включают URL-адрес вразрешения манифеста и строка CSP.

"permissions": [ ..., "https://gloapi.gitkraken.com/" ],
"content_security_policy": "default-src 'self' gloapi.gitkraken.com; script-src 'self' 'sha256-[...]'; style-src * 'unsafe-inline'; img-src 'self' data:;"

Но вместо решения первой ошибки эти изменения просто вызвали другую.

Игнорируется небезопасное значение CSP "gloapi.gitkraken.com" в директиве'default-src'.

Неправильно ли форматируется мой CSP, или я должен что-то еще сделать, чтобы этот HTTP-запрос GET работал.

1 Ответ

0 голосов
/ 02 марта 2019

После нескольких дополнительных исследований я нашел решение.URL-адрес API GitKraken должен быть в connect-src вместо default-src.Теперь мой манифест выглядит так:

permissions": [ ..., "https://gloapi.gitkraken.com/" ],
"content_security_policy": "default-src 'self'; script-src 'self' 'sha256-[...]'; style-src * 'unsafe-inline'; img-src 'self' data:; connect-src https://gloapi.gitkraken.com/;"

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src#Syntax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...