Content-Security-Policy header

Frá og með version 7.3.11.43-dev (unstable) og 7.3.11.765 (stable) þá er kominn innbyggður stuðningur við Content-Security-Policy header

Content-Security-Policy header

Frá og með version 7.3.11.43-dev (unstable) og 7.3.11.765 (stable) þá er kominn innbyggður stuðningur við Content-Security-Policy header (https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), sem þýðir að öll external resources sem verið er að vísa í (myndir, CSS, js, fontar osv.frv.) þarf að white-lista sérstaklega, því um leið og búið er að setja þennan header inn þá blocka vafrarnir allt sem ekki matchar við hann.  Öll innbyggð Veva modules og þau sem eru í VevaIntegrations ættu að sjá um þetta sjálf nú þegar en ef verið er að uppfæra vef sem er með einhverjar manual vísanir í external dót, þá þarf að whitelista það sérstaklega.

Til að gera það er hægt að útfæra custom PageRequestHook, t.d svona:

Þessi er að leyfa fonta frá fonts.gstatic.com sem dæmi

public class CustomCSPHeaderValues : IPageRequestHook
{
public int OrderIndex => 1000;

public async Task OnRequestAsync(PageRequest pageRequest)
{       
    pageRequest.SecurityOptions.FontResources.Add("https://fonts.gstatic.com/");
}

}

Fontar

Í sumum tilvikum koma upp vandamál með að whitelista fonta. Notið þá þennan kóða til að tækla bæði font resource og styleresource. Nýtið síðan console til að sjá hvað failar að loada og bætið við eftir þörfum.

pageRequest.SecurityOptions.FontResources.Add("https://use.typekit.net");
pageRequest.SecurityOptions.StyleResources.Add("https://use.typekit.net");
pageRequest.SecurityOptions.FontResources.Add("https://p.typekit.net");
pageRequest.SecurityOptions.StyleResources.Add("https://p.typekit.net");
pageRequest.SecurityOptions.FontResources.Add("https://fonts.googleapis.com");
pageRequest.SecurityOptions.StyleResources.Add("https://fonts.googleapis.com");
pageRequest.SecurityOptions.FontResources.Add("https://fonts.gstatic.com");