这篇文章给大家分享的是有关ASP。网络核心中怎么利用Csp标头对抗Xss攻击的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
内容安全策略(Csp)是一个增加的安全层,可帮助检测和缓解某些类型的攻击,包括跨站点脚本(Xss)和数据注入攻击。这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容(深入Csp)
引用>简而言之,Csp是网页控制允许加载哪些资源的一种方式,例如,页面可以显式声明允许从中加载JavaScript、CSS和图像资源。这有助于防止跨站点脚本(Xss)攻击等问题。
它也可用于限制协议,例如限制通过HTTPS加载的内容.CSP通过Content-Security-Policy HTTP响应中的标头实现。
启用Csp,您需要配置Web服务器以返回Content-Security-Policy HTTP标头。那么在这篇文章中,我们将要尝试将Csp添加到ASP。网络核心应用程序中。
app.Use (async (ctx,,下一个),=比; {才能 ctx.Response.Headers.Add才能(“Content-Security-Policy", ,,,“default-src & # 39;自我# 39;;,report-uri /cspreport"); await 才能;next (); });才能在家里/索引中引入cdn文件,然后我们启动项目,看看会发生什么!
运行并观察错误。加载页面时,浏览器拒绝从远程源加载。
public class CspOptions ,{ public 才能;List< string>, Defaults {组,得到,,,},=,new List
(); public 才能;List< string>, Scripts {组,得到,,,},=,new List (); public 才能;List< string>, Styles {组,得到,,,},=,new List (); public 才能;List< string>, Images {组,得到,,,},=,new List (); public 才能;List< string>, Fonts {组,得到,,,},=,new List (); public 才能;List< string>, Media {组,得到,,,},=,new List (); 以前,}> 开发一个中间件一定是需要一个构造器的,这将用于。net核心的注入到运行环境中。
public sealed class CspOptionsBuilder {大敌; private 才能readonly CspOptions  options =, new CspOptions (),, ,, internal 才能;CspOptionsBuilder (), {,}, , public 才能CspDirectiveBuilder Defaults {组,得到,,,},=,new CspDirectiveBuilder (),, public 才能CspDirectiveBuilder Scripts {组,得到,,,},=,new CspDirectiveBuilder (),, public 才能CspDirectiveBuilder Styles {组,得到,,,},=,new CspDirectiveBuilder (),, public 才能CspDirectiveBuilder Images {组,得到,,,},=,new CspDirectiveBuilder (),, public 才能CspDirectiveBuilder Fonts {组,得到,,,},=,new CspDirectiveBuilder (),, public 才能CspDirectiveBuilder Media {组,得到,,,},=,new CspDirectiveBuilder (),, , internal 才能;CspOptions 建立(), ,{大敌; ,,this.options.Defaults =, this.Defaults.Sources;, ,,this.options.Scripts =, this.Scripts.Sources;, ,,this.options.Styles =, this.Styles.Sources;, ,,this.options.Images =, this.Images.Sources;, ,,this.options.Fonts =, this.Fonts.Sources;, ,,this.options.Media =, this.Media.Sources;, ,,return this.options, ,,}, }大敌; , ,public sealed  class CspDirectiveBuilder {大敌; internal 才能;CspDirectiveBuilder (), {,}, , internal 才能;List< string>, Sources {组,得到,,,},=,new ListASP。网络核心中怎么利用Csp标头对抗Xss攻击