web-dev-qa-db-fra.com

Refus de charger la police '<URL>' car elle viole la directive de sécurité de contenu suivante default-src, donc default-src est utilisé comme solution de secours

Je crée une application Web en utilisant la pile moyenne dans angular 6 mais je reçois un message d'erreur ci-dessous sur la console du navigateur.

"Refus de charger la police '<URL>' car elle enfreint la directive de politique de sécurité du contenu suivante:" default-src 'self' ". Notez que 'font-src' n'était pas explicitement défini, donc 'default-src' est utilisé comme solution de rechange. "

Code:

 getUsers() {
    return this._http.get("/api/users")
      .pipe(map(result => this.result = result.json().data));
  }
4
Pramod

L'ajout de "soi" et de données: au font-src fonctionne pour moi.

Content-Security-Policy: font-src 'self' data:;
4
harpreet kaur

La politique de sécurité du contenu est un moyen pour les navigateurs modernes de définir un ensemble de restrictions lors du chargement des ressources distantes.

Les en-têtes de réponse du protocole HTTP peuvent définir ces stratégies:

Content-Security-Policy en-tête (officiel), X-Content-Security-Policy (pris en charge par Mozilla Firefox et IE10) et X-WebKit-CSP (pris en charge par Google Chrome et Safari) en-têtes de réponse HTTP avec la liste des directives de politique de sécurité du contenu. (from seckit drupal )

Vous pouvez définir différentes stratégies pour différents types d'éléments dans le DOM (par exemple <img>, <script>, <object>, <embed>, <iframe> et ainsi de suite ...), pour restreindre les requêtes provenant de cet élément.

Screenshot of request with policy

Vous devez donc modifier 'self' à l'un des éléments suivants:

  • 'none' - bloquer le contenu de n'importe quelle source
  • 'self' - autoriser uniquement le contenu de votre domaine
  • 'unsafe-inline' - autorise un contenu en ligne spécifique (notez qu'il est pris en charge par un sous-ensemble de directives)
  • 'unsafe-eval' - autorise un ensemble d'API chaîne à code qui est restreint par défaut (pris en charge par la directive script-src)

Les caractères génériques (*) sont autorisés:

  • * - charger du contenu depuis n'importe quelle source
  • *.example.com - charge le contenu de example.com et tous ses sous-domaines
  • example.com:* - charge le contenu d'exemple.com via n'importe quel port. -
  • Sinon, il utilisera le port par défaut de votre site Web
2
JonnieJS

font-src document de référence de MDN

L'en-tête Content-Security-Policy est défini par votre API. Vérifiez votre réponse api pour sa valeur. Selon l'erreur, je pense que vos polices sont chargées à partir d'un domaine différent de celui de votre domaine d'application. À moins que votre API ne mette ce domaine en liste blanche, votre navigateur ne chargera pas la police.

Exemple:

Content-Security-Policy: font-src https://example.com/
0
Anu