Node是一个开源,跨平台的用来执行javascript的运行环境。它建立在google的v8引擎上,而v8引擎正是google chrome浏览器的执行引擎,能够快速的将javascript代码转为原生的机器码。
在Node诞生之前,javascript只能在浏览器执行。在2009年,Ryan Dahl使用开源的google v8 javascript引擎来构建node,使它成为一个独立于浏览器之外的javascript运行环境。这使得javascript开发者能够在服务端使用javascript来构建大部分的web apis。
题外话:我觉得有两个技术的普及让web前端的有了较大的发展。一是混合应用的出现,包括移动端的混合应用如phone gap、ionic等框架和PC端的混合应用如hex、酷狗音乐等,这一技术的诞生让前端工作从简单的类似制作ppt一般地展现页面效果的工作升级成了开发应用程序的级别;二是node.js的出现,让js可以运用于服务端开发,让前端工程师能低门槛地转成js全栈,通过node.js开发后端又可以与数据库连接,让js开发人员可以参与到web的前端、后端、数据库整个系统,从而为js工程师提供了一条晋升到web架构师的有利通道,为js工程师插上了一双翅膀。
XSS的时候经常要绕过CSP,这里总结一下
一个CSP头由多组CSP策略组成,中间由分号分隔,就像这样:
其中每一组策略包含一个 策略指令 和一个 内容源 列表
default-src 指令定义了那些没有被更精确指令指定的安全策略。这些指令包括:
script-src定义了页面中Javascript的有效来源
style-src定义了页面中CSS样式的有效来源
img-src定义了页面中图片和图标的有效来源
font-src定义了字体加载的有效来源
connect-src定义了请求、XMLHttpRequest、WebSocket 和 EventSource 的连接来源。
child-src 指定定义了 web workers 以及嵌套的浏览上下文(如frame和iframe)的源。
内容源有三种:源列表、关键字和数据
源列表是一个字符串,指定了一个或多个互联网主机(通过主机名或 IP 地址),和可选的或端口号。站点地址可以包含可选的通配符前缀 (星号, '*'),端口号也可以使用通配符 (同样是 '*') 来表明所有合法端口都是有效来源。主机通过空格分隔。
有效的主机表达式包括:
http://* .foo.com (匹配所有使用 http协议加载 foo.com 任何子域名的尝试。)
mail.foo.com:443 (匹配所有访问 mail.foo.com 的 443 端口 的尝试。)
(匹配所有使用 https协议访问 store.foo.com 的尝试。)
如果端口号没有被指定,浏览器会使用指定协议的默认端口号。如果协议没有被指定,浏览器会使用访问该文档时的协议。
CSP的设置可能情况太多,这里只讨论几个比较典型的情况。
在default-src 'none'的情况下,可以使用meta标签实现跳转
在允许unsafe-inline的情况下,可以用window.location,或者window.open之类的方法进行跳转绕过。
CSP对link标签的预加载功能考虑不完善。
在Chrome下,可以使用如下标签发送cookie(最新版Chrome会禁止)
在Firefox下,可以将cookie作为子域名,用dns预解析的方式把cookie带出去,查看dns服务器的日志就能得到cookie
有些网站限制只有某些脚本才能使用,往往会使用script标签的nonce属性,只有nonce一致的脚本才生效,比如CSP设置成下面这样:
那么当脚本插入点为如下的情况时
可以插入
这样会拼成一个新的script标签,其中的src可以自由设定
Blackhat2017上有篇 ppt 总结了可以被用来绕过CSP的一些JS库。
例如假设页面中使用了Jquery-mobile库,并且CSP策略中包含"script-src 'unsafe-eval'"或者"script-src 'strict-dynamic'",那么下面的向量就可以绕过CSP:
在这个PPT之外的还有一些库也可以被利用,例如RCTF2018中遇到的amp库,下面的标签可以获取名字为FLAG的cookie
1.如果页面A中有CSP限制,但是页面B中没有,同时A和B同源,那么就可以在A页面中包含B页面来绕过CSP:
2.在Chrome下,iframe标签支持csp属性,这有时候可以用来绕过一些防御,例如" "页面有个js库会过滤XSS向量,我们就可以使用csp属性来禁掉这个js库。
meta标签有一些不常用的功能有时候有奇效:
meta可以控制缓存(在header没有设置的情况下),有时候可以用来绕过CSP nonce。
meta可以设置Cookie(Firefox下),可以结合self-xss利用。
不能,必须充值才可以下载。
百度文库是百度发布的供网友在线分享文档的平台。百度文库的文档由百度用户上传,需要经过百度的审核才能发布,百度自身不编辑或修改用户上传的文档内容。网友可以在线阅读和下载这些文档。百度文库的文档包括教学资料、考试题库、专业资料、公文写作、法律文件等多个领域的资料。百度用户上传文档可以得到一定的积分,下载有标价的文档则需要消耗积分。当前平台支持主流的doc(.docx)、.ppt(.pptx)、.xls(.xlsx)、.pot、.pps、.vsd、.rtf、.wps、.et、.dps、.pdf、.txt文件格式。
学习IT技术要从以下几个方面入手:
1.多看书
看书不是一扫而过, 编程需要大量实践, 练习也得慢慢过, 别人看技术书快,是因为人家都是科班出身,或者从业很多年。你是从零学, 只能恶补基础,恶补基础的意思是, 你得像科班一样花费大量时间, 而不是跟看小说一样速战速决,那样没用的。人家给你推荐的CSAPP那些书, 对于科班的人当课外书看还得看个1个月, 你如果跟着学,每本书都至少半年。
2.多逛IT相关的论坛和社区
有些技术是靠经验堆积的,比如整个框架的设计,设计模式的运用。我倒觉得这个能力只要你平时留心,掌握它们只是个时间的问题。
而有些技术,是要去实打实钻研的,不看透几本英文原版书,不逛遍几个论坛,你永远不能明白。越是难的东西,越能拉开你跟别人的距离。
3.多看大V的文章
大V都是过来人,很多你没听说过的问题或者不能解决的难题,他们可能早就遇到过了。现在人人手机不离手,不过有的人是用来学习,有的人却是用来打游戏或者刷剧!
4.多上课或者多进社群:
现在网上的课有很多很多关于IT技术的,只要你想学,总是会找到相关的课程来学习的。关键就在于你是怎么想的,仅仅是为了业余爱好学习还是为了找一份工作。在社群中除了能学习一些知识以外,还可以跟一些志同道合的朋友相互交流。
以上这些经验足以让你入门,如果想系统的学习,是需要专门去学习的!
《吐槽大会》是一档非常年轻化的脱口秀节目,张绍刚李诞的才华毋庸置疑,但是这档综艺的优点与缺点都非常明显。首先,这档综艺应该是内地第一档让明星敢当众调侃自已的“黑点”的。比如网友调侃唐国强广告接的太多,节目中就让各位脱口秀高手以及唐国强本人拿这种事情自黑了一把。
再比如张雨绮看男人的眼光差、王岳伦靠老婆女儿吃饭、李湘跟谢娜不和等等,这些都是网上热议的明星话题。以往的节目中,节目组及明星本人都会刻意回头这些受争议的话题,讳莫如深,曾经有过不少因为节目组没有按事先约定提到相关问题而与明星产生冲突。但是这档节目却把大家暗暗讨论的事情拿到台面上去说,满足了观众的八卦心态,也让明星本人更加讨喜接地气。
然而,他的缺点恰恰就是这个优点。参加这档节目的明星都敢自黑不错,但是细看就会发现这些自黑的点其实都是网络上比较讨喜的点,并没有多么的敏感。节目做不到让两个真正不和的人相互吐槽,更做不到拿真正受争议的话题来讨论。
明星之前的吐槽像是隔靴搔痒,初看有新意再看套路类似,容易乏味。
我来说两句