ASP.NET Core中如何利用Csp标头对抗Xss攻击

来源:脚本之家  责任编辑:小易  

进入路由,在其它选项里面 ,在GUEST 用户下输入密码就可以了。路由IP一般是 http://192.168.1.1

内容安全策略(CSP)是一个增加的安全层,可帮助检测和缓解某些类型的攻击,包括跨站点脚本(XSS)和数据注入攻击。这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容(深入CSP)

接路由器后, 如果还能用宽带连接, 说明你路由上的接线顺序有问题。 宽带进线或猫分线接路由器的WAN口, 然后再设置路由自动拨号

简而言之,CSP是网页控制允许加载哪些资源的一种方式。例如,页面可以显式声明允许从中加载JavaScript,CSS和图像资源。这有助于防止跨站点脚本(XSS)攻击等问题。

192.168.1.1,进去后找恢复出厂设置

它也可用于限制协议,例如限制通过HTTPS加载的内容。CSP通过 Content-Security-Policy HTTP响应中的标头实现。

磊科,国产牌子,质量挺好的。价位低,功能也全面

启用CSP,您需要配置Web服务器以返回Content-Security-Policy HTTP标头。那么在这篇文章中,我们将要尝试将CSP添加到ASP.NET Core应用程序中。

现在以netcore(磊科)NR205路由器为例图文并茂的向大家展示一下宽带路由器点击WAN设置,(以PPPOE为例),填上自己的帐号和密码.不知道的可以向安装

app.Use(async (ctx, next) => { ctx.Response.Headers.Add("Content-Security-Policy", "default-src 'self'; report-uri /cspreport"); await next(); });

1.对自己所做的事情负责高中生升入大学,已经不再是小孩子,成年的人要对自己的所作所为负责,不论是对的事情还是错的事情。大学不再像高中那样,闯祸了会有家长和老师帮助处理,因为你还没有成年,还是小孩子。然而到了大学,不仅年龄长大,心理也要成长,大学老师不再会为你费心费力,家长也不在自己身边,所以必须要自己对自己负责。2.自我学习大学的学习不像高中,高中时期你不学习会有老师和家长的督促,而大学是自主自觉学习,不会再有老师和家长的督促了,因为你已经是成年人,不需要家长和老师的监督了,否则永远也不会长大。3.处理好学习与社团的关系大学社团很多,在高中只能学习的地方,社团对于刚入大学的同学吸引力很大,有些

在Home/Index中引入cdn文件,然后我们启动项目,看看会发生什么!

感谢邀请。鸡蛋是性价比很高的食物,而且也是每天不可少的食物。鸡蛋中最得意的成分是蛋白质,鸡蛋是补充蛋白质最理想的一种食物,而且鸡蛋中富含脂溶性维生素,如维生素A、维生素D、维生素E等等;另外,鸡蛋中还有不少矿物质和微量元素,例如人体必需的铁、锌、铜、镁等等。小小的一个鸡蛋其实蕴含着很多丰富的营养。中国膳食指南(2016)中推荐,每人每天摄入一个鸡蛋最佳,鸡蛋中除了很多营养物质外,蛋黄中还有特殊的卵黄素和卵磷脂,卵磷脂可以抑制胆固醇结合蛋白质附着在血管内壁,造成动脉粥样硬化或者其他心脑血管疾病,所以适当吃鸡蛋是不错的选择。鸡蛋的热量较高,特别是蛋黄中的胆固醇含量也很高,所以鸡蛋最好不要过量食用。

运行并观察错误。加载页面时,浏览器拒绝从远程源加载。

我的这个回答不一定适合你,但你可参考一下。离我家不远有一个小诊所,叫小布点诊所。我初一看这招牌名就差点笑掉了牙!坐诊的是个白白净净的苗条女孩子,开业之初,虽说是公路之旁,人口集中之处,但上门的患者却是寥寥无几。隔了一段时间,我发现这小布点门前人愈来愈多了。老人,小孩,女人,中年人,什么人都是,心中挺纳闷,大医院那么多医生都医不好病,你一年轻女孩有多大能耐啊?于是,附近的人纷纷告诉我,这女孩不错呢,中医卫校毕业,在医院当了两年护士,现在辞职开诊所,专治感冒,创伤口,……一些小毛病。她大病,重病不看,只建议你上大医院。收费便宜,大一点的医院,治个感冒,最少几百,她最多几十,甚至十几,几块钱就会搞定

 

如果有时间自己训练完全可以的。没有时间的话送去训练,一般都是三千多至六七千不等,主要是训练的项目所决定的!一般家里的狗狗价值都没有训练费用高,个人建议还是自己训练的好,你送去训练,回来还要主人和狗狗有一段时间去适应!非要送去训练,建议不要训练太多项目,一是为了省钱,二是应为项目多了,很多平时用不上,时间一长就还是回到原点!

所以我们可以组织CSP来控制我们的白名单,在配置当中需要填写来源以及内容,以下是常用限制的选项。

来源:

*: 允许任何网址。

‘self': 允许所提供页面的来源。请注意,单引号是必需的。

‘none': 不允许任何来源。请注意,单引号是必需的。

Host: 允许指定的互联网主机(按名称或IP地址)。通配符(星号字符)可用于包括所有子域,例如http://*.foo.com

‘unsafe-line': 允许内联脚本

‘nonce-[base64-value]': 允许具有特定nonce的内联脚本(使用一次的数字)。对于每个HTTP请求/响应,应该对nonce进行加密和唯一。

 指令:

script-src:定义有效的JavaScript源

style-src:定义样式表的有效来源

img-src:定义有效的图像源

connect-src:定义可以进行AJAX调用的有效源

font-src:定义有效的字体来源

object-src:定义<object>,<embed>和<applet>元素的有效源

media-src:定义有效的音频和视频源

form-action:定义可用作HTML <form>操作的有效源。

default-src:指定加载内容的默认策略

我们可以在可重用的中间件中封装构建和添加CSP头。以下是一个让您入门的示例。你可以根据需要扩展它。首先,创建一个用于保存源的类。

public class CspOptions { public List<string> Defaults { get; set; } = new List<string>(); public List<string> Scripts { get; set; } = new List<string>(); public List<string> Styles { get; set; } = new List<string>(); public List<string> Images { get; set; } = new List<string>(); public List<string> Fonts { get; set; } = new List<string>(); public List<string> Media { get; set; } = new List<string>(); }

开发一个中间件一定是需要一个构造器的,这将用于.net core 的注入到运行环境中。

public sealed class CspOptionsBuilder { private readonly CspOptions options = new CspOptions(); internal CspOptionsBuilder() { } public CspDirectiveBuilder Defaults { get; set; } = new CspDirectiveBuilder(); public CspDirectiveBuilder Scripts { get; set; } = new CspDirectiveBuilder(); public CspDirectiveBuilder Styles { get; set; } = new CspDirectiveBuilder(); public CspDirectiveBuilder Images { get; set; } = new CspDirectiveBuilder(); public CspDirectiveBuilder Fonts { get; set; } = new CspDirectiveBuilder(); public CspDirectiveBuilder Media { get; set; } = new CspDirectiveBuilder(); internal CspOptions Build() { 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 { get; set; } = new List<string>(); public CspDirectiveBuilder AllowSelf() => Allow("'self'"); public CspDirectiveBuilder AllowNone() => Allow("none"); public CspDirectiveBuilder AllowAny() => Allow("*"); public CspDirectiveBuilder Allow(string source) { this.Sources.Add(source); return this; } }

好了,我们创建一个中间件。

namespace XSSDefenses.XSSDefenses.MiddlerWare { public sealed class CspOptionMiddlerWare { private const string HEADER = "Content-Security-Policy"; private readonly RequestDelegate next; private readonly CspOptions options; public CspOptionMiddlerWare( RequestDelegate next, CspOptions options) { this.next = next; this.options = options; } public async Task Invoke(HttpContext context) { context.Response.Headers.Add(HEADER, GetHeaderValue()); await this.next(context); } private string GetHeaderValue() { var value = ""; value += GetDirective("default-src", this.options.Defaults); value += GetDirective("script-src", this.options.Scripts); value += GetDirective("style-src", this.options.Styles); value += GetDirective("img-src", this.options.Images); value += GetDirective("font-src", this.options.Fonts); value += GetDirective("media-src", this.options.Media); return value; } private string GetDirective(string directive, List<string> sources) => sources.Count > 0 ? $"{directive} {string.Join(" ", sources)}; " : ""; } }

以及设置它的扩展方法。

namespace XSSDefenses.XSSDefenses.Extensions { public static class CspMiddlewareExtensions { public static IApplicationBuilder UseCsp( this IApplicationBuilder app, Action<CspOptionsBuilder> builder) { var newBuilder = new CspOptionsBuilder(); builder(newBuilder); var options = newBuilder.Build(); return app.UseMiddleware<CspOptionMiddlerWare>(options); } } }

我们现在可以在Startup类中配置中间件。

app.UseCsp(builder => { builder.Styles.AllowSelf() .Allow(@"https://ajax.aspnetcdn.com/"); });

启动发现,观察网络资源。浏览器已经允许本地和远程资源。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

netcore路由器怎么改密码

登录路由器在系统设置里面改。WI-FI密码在无线设置里面改

路由器一般登录方法:

网页地址栏输入:192.168.0.1或192.168.1.1

登录账户密码一般默认为 admin (这是在没有更改过的情况下,若更改过且密码忘记了,则可恢复路由器后再按上述方法操作)

磊科(Netcore)NW336无线网卡怎么使用

和我的型号一模一样,这个是wifi网卡,也就是连接无线局域网的,可以用在台式机上 也可在笔记本上 买的时候自带的光盘驱动 装到电脑上 插上网卡就能搜索到周围的无线网 ,如果没有光盘 找个有网的地方 下个驱动精灵 自动检测安装驱动 即可

xss攻击怎么使用

如果你还不知道什么是XSS,我来帮助解释一下,XSS的全称是Cross Site Scripting,意思是跨站脚本.这第一个单词是Cross,为什么缩写成X呢?因为CSS是层叠样式表的缩写(Cascading Style Sheets)的缩写,同时Cross发音和X相似,为了避免混淆用X来代替,缩写成XSS。其实我觉得叫XSS挺合适的,因为现在流行AJAX嘛,新的跨站脚本攻击技术很多都是和XMLHTTP控件无间配合,嘿嘿,这个是题外话,我们只讲原理,下面我就分两个部分分析XSS原理: 一、XSS的触发条件 了解XSS的触发条件就先得从HTML(超文本标记语言)开始,我们浏览的网页全部都是基于超文本标记语言创建的,如显示一个超链接: <A HREF="http://safe.it168.com">IT168安全频道</A> 而XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记<script></script>.在没有过滤字符的情况下,只需要保持完整无错的脚本标记即可触发XSS,假如我们在某个资料表单提交内容,表单提交内容就是某个标记属性所赋的值,我们可以构造如下值来闭和标记来构造完整无错的脚本标记, "><script>alert('XSS');</script><" 结果形成了<A HREF=""><script>alert('XSS');</script> <"">茄子宝的博客在这里</A>这样一个标记,:)这里和SQL注入很象! 测试闭和表单赋值所在的标记,形成完整无错的脚本标记可触发XSS,但是没有脚本标记怎么触发XSS呢?呵呵,我们只好利用其他标记了,假如要在网页里显示一张图片,那么就要使用一个<img>标记,示例如下: <img src=" http://safe.it168.com /xss.gif"> img标记并不是真正地把图片给加入到Html文档把两者合二为一,而是通过src属性赋值。那么浏览器的任务就是解释这个img标记,访问src属性所赋的值中的URL地址并输出图片。问题来了!浏览器会不会检测src属性所赋的值呢?答案是否!那么我们就可以在这里大做文章了,接触过javascript的同志应该知道,javascript有一个URL伪协议,可以使用“javascript:”这种协议说明符加上任意的javascript代码,当浏览器装载这样的URL时,便会执行其中的代码.于是我们就得出了一个经典的XSS示例: <img src="javascript:alert('XSS');"> 如图一 当然并不是所有标记的属性都能用,细心的你应该发现标记的属性在访问文件才触发的XSS,这里我就不再深入,因为离开标记的属性还有事件能帮助我们触发XSS.那什么是事件呢?只有达到某个条件才会引发事件,正巧img标记有一个可以利用的onerror()事件,当img标记内含有一个onerror()事件而正好图片没有正常输出便会触发这个事件,而事件中可以加入任意的脚本代码,其中的代码也会执行.现在我们又得到了另外一个经典的XSS示例: <img src=" http://xss.jpg" onerror=alert('XSS')>如图二 综合这一部分,我们知道XSS的触发条件包括:完整无错的脚本标记,访问文件的标记属性和触发事件。 二、XSS转码引发的过滤问题 有攻就有防,网站程序员肯定不会放任大家利用XSS,所以他们常会过滤类似javascript的关键字符,让大家构造不了自己的XSS,我这里就捡两个被忽略惯了的字符来说,它们是"&"和"\".首先来说说"&"字符,玩过SQL注入的都知道,注入的语句可以转成16进制再赋给一个变量运行,XSS的转码和这个还真有异曲同工之妙,原因是我们的IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值,下面我就拿<img src="javascript:alert('XSS');">示例: <img src="javascript:alert('XSS');"> //10进制转码 如图三 <img src="javascript:alert('XSS');"> //16进制转码。 这个&#分隔符还可以继续加0变成“j” ,“j” ,“j” ,“j”等形式。 而这个"\"字符却暴露了一个严重的XSS 0DAY漏洞,这个漏洞和CSS(Cascading Style Sheets)层叠样式表有很大的关联,下面我就来看看这个漏洞,先举个javascript的eval 函数的例子,官方是这样定义这个函数: eval(codeString),必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。 我们的JavaScript中的"\"字符是转义字符,所以可以使用"\"连接16进制字符串运行代码 <SCRIPT LANGUAGE="JavaScript"> eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29") </SCRIPT> 恐怖的是样式表也支持分析和解释"\"连接的16进制字符串形式,浏览器能正常解释。下面我们来做个实验: 写一个指定某图片为网页背景的CSS标记: <html> <body> <style> BODY { background: url(http://127.0.0.1/xss.gif) } </style> <body> <html> 保存为HTM,浏览器打开显示正常。 转换background属性值为"\"连接的16进制字符串形式,浏览器打开同样显示正常。 <html> <body> <style> BODY { background: \75\72\6c\28\68\74\74\70\3a\2f\2f\31\32\37\2e\30\2e\30\2e\31\2f\78\73\73\2e\67\69\66\29 } </style> <body> <html> 在文章第一部分我已经说过XSS的触发条件包括访问文件的标记属性,因此我们不难构造出 <img STYLE="background-image: url(javascript:alert('XSS'))"> 这样的XSS语句。有了实验的结果,我们又能对CSS样式表的标记进行XSS转码,浏览器将帮我们解释标记内容,XSS语句示例: <img STYLE="background-image: \75\72\6c\28\6a\61\76\61\73\63\72\69\70\74\3a\61\6c\65\72\74\28\27\58\53\53\27\29\29"> 看图四 编者语:XSS攻击以及的可怕性及灵活性深受黑客的喜爱。争对XSS攻击,编者给普通浏览网页用户及WEB应用开发者给出以下的安全建议: web用户 1.在电子邮件或者即时通讯软件中点击链接时需要格外小心:留心可疑的过长链接,尤其是它们看上去包含了HTML代码。如果对其产生怀疑,可以在浏览器地址栏中手工输入域名,而后通过该页面中的链接浏览你所要的信息。 2.对于XSS漏洞,没有哪种web浏览器具有明显的安全优势。也就是Firefox也同样不安全。为了获得更多的安全性,可以安装一些浏览器插件:比如Firefox的NoScript或者Netcraft工具条。 3.世界上没有“100%的有效”。尽量避免访问有问题的站点:比如提供hack信息和工具、破解软件、*照片的网站。这些类型的网站会利用浏览器漏洞并危害操作系统。 web应用开发者 1.对于开发者,首先应该把精力放到对所有用户提交内容进行可靠的输入验证上。这些提交内容包括URL、查询关键字、http头、post数据等。只接受在你所规定长度范围内、采用适当格式、你所希望的字符。阻塞、过滤或者忽略其它的任何东西。 2.保护所有敏感的功能,以防被bots自动化或者被第三方网站所执行。实现session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查。 3.如果你的web应用必须支持用户提供的HTML,那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来保护web站点:确认你接收的HTML内容被妥善地格式化,仅包含最小化的、安全的tag(绝对没有JavaScript),去掉任何对远程内容的引用(尤其是样式表和JavaScript)。为了更多的安全,请使用httpOnly的cookie。

netcore无线路由器怎么安装

入户网线连接到猫,用一根网线连接猫和无线路由器的WAN口,再用一根网线连接路由器的LAN口和电脑主机。打开电脑浏览器输入:192.168.1.1。输入账号和密码:都是guest。进入无线路由器设置页面后选择:快速配置。WAN口设置连接类型为:PPPOE,输入你的网络账户和密码。无线状态设为开启,安区设置选择:WPA-PSK/WPA2-PSK AES加密,自己设置一个密码。(这是为了防止别人蹭网)。(看下边的图)点:保存并重启,重启路由器就可以了上网了。

无线上网卡netcore NW336驱动如何安装

磊科nw336USB无线网卡上不了网,驱动与网卡都装上了,就是指示灯不亮,右下角提示说电缆被拨出 你无线上网卡要电缆干嘛????? 你详细描述下

  • 本文相关:
  • .net core xss攻击防御的方法
  • asp.net ashx中获得session的方法
  • iis7伪静态web.config配置的方法和规则
  • 使用httpwebrequest向网站模拟上传数据
  • asp.net(c#)从其他网站抓取内容并截取有用信息的实现代码
  • .net core内存回收模式及性能测试对比分析
  • asp.net mvc基础
  • 基于asp.net的lucene.net全文搜索实现步骤
  • asp.net(c#)自动执行计划任务的程序实例分析分享
  • asp.net中cookie状态的说明与用法
  • 浅析databinder.eval和eval的区别
  • netcore路由器怎么改密码
  • 磊科(Netcore)NW336无线网卡怎么使用
  • xss攻击怎么使用
  • netcore无线路由器怎么安装
  • 无线上网卡netcore NW336驱动如何安装
  • netcore无线路由器密码怎么设置
  • netcore路由器怎么设置
  • 磊科NETCORE路由器怎么恢复默认设置?按后面那个恢复键貌...
  • NETCORE路由器怎么样,质量如何
  • NET CORE磊科上网行为管理路由器怎么安装和设置
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved