2017-05-27 6 views
0

Ich habe einen Angular 2-Client, einen Ressourcenserver und einen Authentifizierungsserver. Alles lief glatt, bis ich zum Vollbremsung kam an diesem NachmittagVerletzung der Inhaltssicherheitsrichtlinie in der CORS-Umgebung

hier wird ein Bild des Fehlers Ich erhalte

enter image description here

Lassen Sie mich hinzufügen, dass ich einige Probleme gesehen haben diesbezüglich und haben versucht, fast alle ohne Erfolg vorgeschriebene Lösungen

ich haben auch die folgende Klasse, die ich von dieser Politik Verletzung Deckung annehmen, um zu liefern

public class SecurityHeadersAttribute : ActionFilterAttribute 
{ 
    public override void OnResultExecuting(ResultExecutingContext context) 
    { 
     var result = context.Result; 
     if (result is ViewResult) 
     { 
      if (!context.HttpContext.Response.Headers.ContainsKey("X-Content-Type-Options")) 
      { 
       context.HttpContext.Response.Headers.Add("X-Content-Type-Options", "nosniff"); 
      } 
      if (!context.HttpContext.Response.Headers.ContainsKey("X-Frame-Options")) 
      { 
       context.HttpContext.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN"); 
      } 

      var csp = "default-src 'self'"; 
      // once for standards compliant browsers 
      if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security-Policy")) 
      { 
       context.HttpContext.Response.Headers.Add("Content-Security-Policy", csp); 
      } 
      // and once again for IE 
      if (!context.HttpContext.Response.Headers.ContainsKey("X-Content-Security-Policy")) 
      { 
       context.HttpContext.Response.Headers.Add("X-Content-Security-Policy", csp); 
      } 
     } 
    } 
} 

Es scheint jedoch, als ob nach der Aktualisierung von "Microsoft.AspNetCore.Mvc.Core" von Version 1.1.2 auf 1.1.3 mein Cover durchgebrannt wurde. Irgendwelche Ideen, wie ich diese Herausforderung umgehen kann, sind sehr willkommen Danke

Antwort

1

Ihre CSP-Richtlinie muss Inhalt von https://ajax.aspnetcdn.com zulassen. So versuchen, dies zu ändern:

var csp = "default-src 'self'"; 

... dazu:

var csp = "default-src 'self'; style-src https://ajax.aspnetcdn.com"; script-src https://ajax.aspnetcdn.com; 

Aber auf der Grundlage der Fehlermeldung in der Frage zitiert, es scheint der Content-Security-Policy Header-Wert gesetzt ist immer schon irgendwo anders als in diesem Teil Ihres Anwendungscodes.

Anstatt also context.HttpContext.Response.Headers.Add zu verwenden, die einfach eine weitere Kopfzeile hinzufügt, versuchen Sie, den vorhandenen Wert mit context.HttpContext.Response.Headers.Set zu überschreiben.

Wenn Sie das tun, möchten Sie auch entfernen if Zustand um den Ort gewickelt, den Sie es einstellen.

So versuchen, dies zu ändern:

if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security-Policy")) 
{ 
    context.HttpContext.Response.Headers.Add("Content-Security-Policy", csp); 
} 

... nur das:

context.HttpContext.Response.Headers.Set("Content-Security-Policy", csp); 

... so dass zusammen am Ende haben Sie dies:

var csp = "default-src 'self'; style-src https://ajax.aspnetcdn.com"; script-src https://ajax.aspnetcdn.com; 
context.HttpContext.Response.Headers.Set("Content-Security-Policy", csp); 

Und wenn das doesn Wenn Sie nicht arbeiten, müssen Sie den anderen Platz im Backend-Code finden, wo der Content-Security-Policy Header-Wert abgerufen wird g setzen und ändern Sie es so, dass der Wert style-src https://ajax.aspnetcdn.com"; script-src https://ajax.aspnetcdn.com enthält.

+0

Danke für Ihre Hilfe. Ich habe es geschafft, die Fehler mit ein paar Änderungen an Ihrem Vorschlag loszuwerden, aber ich habe jedoch ein anderes Problem: Die Hyperlinks auf der angeforderten Seite funktionieren nicht mehr und meine Postanforderung kommt auch nicht durch. Ich bekomme den Fehlercode 400 Dies war eine funktionale Anwendung, bis dieses inhaltliche Problem auftrat. Hoffe, du kannst m hier eine Anleitung geben –

+0

Das klingt nach einem anderen Problem, also denke ich, dass du wahrscheinlich eine neue separate Frage dazu schreiben willst – sideshowbarker

Verwandte Themen