"newtab": "blank.html"假如项目中有用到这些的话,一定要防止在字符串中拼接不行信数据。
其他XSS防备措施尽管在烘托页面和履行 JavaScript 时,通过慎重的转义能够防止 XSS 的发作,但彻底依托开发的慎重仍然是不行的。
以下介绍一些通用的计划,能够下降 XSS 带来的风险和结果。
Content Security Policy严厉的 CSP 在 XSS 的防备中能够起到以下的效果:制止加载外域代码,防止杂乱的进犯逻辑。
制止外域提交,网站被进犯后,用户的数据不会走漏到外域。
制止内联脚本履行(规矩较严厉,现在发现 github 运用)。
制止未授权的脚本履行(新特性,Google Map 移动版在运用)。
合理运用上报能够及时发现 XSS,利于赶快修正问题。
关于 CSP 的概况,请重视前端安全系列后续的文章。
输入内容长度操控关于不受信赖的输入,都应该限制一个合理的长度。
尽管无法彻底防止 XSS 发作,但能够添加 XSS 进犯的难度。
其他安全措施HTTP-only Cookie: 制止 JavaScript 读取某些灵敏 Cookie,进犯者完结 XSS 注入后也无法盗取此 Cookie。
验证码:防止脚本假充用户提交风险操作。
XSS的检测上述阅历让小明收成颇丰,他也学会了怎么去防备和修正 XSS 缝隙,在日常开发中也具有了相关的安全意识。
但关于现已上线的代码,怎么去检测其间有没有 XSS 缝隙呢?通过一番搜索,小明找到了两个办法:运用通用 XSS 进犯字符串手动检测 XSS 缝隙。
运用扫描东西主动检测 XSS 缝隙。
在Unleashing an Ultimate XSS Polyglot一文中,小明发现了这么一个字符串:jaVasCript:/*-/*`/*`/*/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//x3csVg/x3e Changes in 7-Zip 18.02 (2019-03-03):The speed for single-thread LZMA/LZMA2 decoding was increased by 30% in x64 version and by 3% in x86 version.7-Zip now can use multi-threading for 7z/LZMA2 decoding, if there are multiple independent data chunks in LZMA2 stream.7-Zip now can use multi-threading for xz decoding, if there are multiple blocks in xz stream.New localization: Kabyle.Some bugs were fixed.下载地址:7-Zip 18.02 Beta 32-bit Windows7-Zip 18.02 Beta 64-bit Windows functionfoo2(){ 来历:知乎@汪鹏。
(直接来历:人人都是极客)所谓的AI芯片,一般是指针对AI算法的ASIC(专用芯片)。
传统的CPU、GPU都能够拿来履行AI算法,可是速度慢,功用低,无法实践商用。
比方,自动驾驭需求辨认路途行人红绿灯等状况,可是假如是当时的CPU去算,那么估量车翻到河里了还没发现前方是河,这是速度慢,时刻便是生命。
假如用GPU,确实速度要快得多,可是,功耗大,轿车的电池估量无法长时刻支撑正常运用,并且,老黄家的GPU巨贵,常常单块上万,一般顾客也用不起,还常常缺货。
别的,GPU由于不是专门针对AI算法开发的ASIC,所以,说到底,速度还没到极限,还有提高空间。
而相似智能驾驭这样的范畴,有必要快!在手机终端,能够自行人脸辨认、语音辨认等AI运用,这个有必要功耗低,所以GPU OUT!所以,开发ASIC就成了必定。
说说,为什么需求AI芯片。
AI算法,在图画辨认等范畴,常用的是CNN卷积 *** ,语音辨认、天然语言处理等范畴,主要是RNN,这是两类有差异的算法。
可是,他们实质上,都是矩阵或vector的乘法、加法,然后合作一些除法、指数等算法。
一个老练的AI算法,比方YOLO-V3,便是许多的卷积、残差 *** 、全衔接等类型的核算,实质是乘法和加法。
关于YOLO-V3来说,假如确认了具体的输入图形尺度,那么总的乘法加法核算次数是确认的。
比方一万亿次。
(实在的状况比这个大得多的多)那么要快速履行一次YOLO-V3,就有必要履行完一万亿次的加法乘法次数。
这个时分就来看了,比方IBM的POWER8,更先进的服务器用超标量CPU之一,4GHz,SIMD,128bit,假设是处理16bit的数据,那便是8个数,那么一个周期,最多履行8个乘加核算。
一次最多履行16个操作。
这仍是理论上,其实是不大或许的。
那么CPU一秒钟的巅峰核算次数=16X4Gops=64Gops。
这样,能够算算CPU核算一次的时刻了。
相同的,换成GPU算算,也能知道履行时刻。
由于对GPU内部结构不熟,所以不做具体剖析。
再来说说AI芯片。
比方大名鼎鼎的谷歌的TPU1。
TPU1,大约700M Hz,有256X256尺度的脉动阵列,如下图所示。
总共256X256=64K个乘加单元,每个单元一次可履行一个乘法和一个加法。
那便是128K个操作。
(乘法算一个,加法再算一个)别的,除了脉动阵列,还有其他模块,比方激活等,这些里边也有乘法、加法等。
所以,看看TPU1一秒钟的巅峰核算次数至少是=128K X 700MHz=89600Gops=大约90Tops。
比照一下CPU与TPU1,会发现核算才干有几个数量级的距离,这便是为啥说CPU慢。
当然,以上的数据都是彻底最理想的理论值,实践状况,能够到达5%吧。
由于,芯片上的存储不够大,所以数据会存储在DRAM中,从DRAM取数据很慢的,所以,乘法逻辑往往要等候。
别的,AI算法有许多层 *** 组成,有必要一层一层的算,所以,在切换层的时分,乘法逻辑又是歇息的,所以,许多要素形成了实践的芯片并不能到达赢利的核算峰值,并且距离还极大。
或许有人要说,搞研讨慢一点也能将就用。
现在来看,神经 *** 的尺度是越来越大,参数越来越多,遇到大型NN模型,练习需求花几周乃至一两个月的时分,你会耐性等候么?忽然断电,全部重来?(从前着手练习一个写小说的AI,然后,一次练习(50轮)需求大约一天一夜还多,记住假如之一天早上开端练习,需求到第二天下午才或许完结,这仍是模型比较简单,数据只需几万条的小模型呀。
)修改了模型,需求几个星期才干知道对错,确认等得起?忽然有了TPU,然后你发现,吃个午饭回来就好了,参数优化一下,持续跑,多么爽!核算速度快,才干敏捷重复迭代,研宣布更强的AI模型。
速度便是金钱。
GPU的内核结构不清楚,所以就不比较了。
必定的是,GPU仍是比较快的,至少比CPU快得多,所以现在大多数都用GPU,这玩意随意一个都能价格轻松上万,太贵,并且,功耗高,常常缺货。
不合适数据中心许多运用。
总的来说,CPU与GPU并不是AI专用芯片,为了完成其他功用,内部有许多其他逻辑,而这些逻辑关于现在的AI算法来说是彻底用不上的,所以,天然形成CPU与GPU并不能到达更优的性价比。
谷歌花钱研制TPU,并且现在现已出了TPU3,用得还挺欢,都开端支撑谷歌云核算服务了,形似6点几美元每小时吧,不记住单位了,懒得查.可见,谷歌觉得很有必要自己研制TPU。
就酱。
看到有答案点我名说不该该用CPU做比照,这个锅我不背。
做一点解说。
现在在图画辨认、语音辨认、天然语言处理等范畴,精度更高的算法便是根据深度学习的,传统的机器学习的核算精度现已被逾越,现在运用最广的算法,估量非深度学习莫属,并且,传统机器学习的核算量与 深度学习比起来少许多,所以,我谈论AI芯片时就针对核算量特别大的深度学习而言。
究竟,核算量小的算法,说实话,CPU现已很快了。
并且,CPU合适履行调度杂乱的算法,这一点是GPU与AI芯片都做不到的,所以他们三者仅仅针对不同的运用场景罢了,都有各自的主场。
至于为何用了CPU做比照?而没有具体说GPU。
是由于,我说了,我现在没有体系查看过GPU的论文,不了解GPU的状况,故不做剖析。
由于堆集的原因,比较了解超标量CPU,所以就用了解的CPU做具体比较。
并且,小型的 *** ,彻底能够用CPU去练习,没啥大问题,最多慢一点。
只需不是太大的 *** 模型。
那些AI算法公司,比方旷世、商汤等,他们的模型很大,天然也不是一块GPU就能搞定的。
GPU的算力也是很有限的。
至于说CPU是串行,GPU是并行。
没错,可是不全面。
只说说CPU串行。
这位网友估量对CPU没有十分深化的了解。
我的答复中举的CPU是IBM的POWER8,百度一下就知道,这是超标量的服务器用CPU,现在来看,功用现已是十分尖端的了,主频4GHZ。
不知是否留意到我说了这是SIMD?这个SIMD,就代表他能够一起履行多条相同的指令,这便是并行,而不是串行。
单个数据是128bit的,假如是16bit的精度,那么一周期理论上最多能够核算八组数据的乘法或加法,或许乘加。
这还不叫并行?仅仅并行的程度没有GPU那么凶猛罢了,可是,这也是并行。
不知道为啥就不能用CPU来比较算力?有谈论很推重GPU。
说用CPU来做比较,不合适。
托付,GPU本来是从CPU中分离出来专门处理图画核算的,也便是说,GPU是专门处理图画核算的。
包含各种特效的显现。
这也是GPU的天然生成的缺点,GPU愈加针对图画的烘托等核算算法。
可是,这些算法,与深度学习的算法仍是有比较大的差异,而我的答复里说到的AI芯片,比方TPU,这个是专门针对CNN等典型深度学习算法而开发的。
别的,寒武纪的NPU,也是专门针对神经 *** 的,与TPU相似。
谷歌的TPU,寒武纪的DianNao,这些AI芯片刚出道的时分,便是用CPU/GPU来比照的。
无图无本相,是吧?看看,谷歌TPU论文的摘要直接比照了TPU1与CPU/GPU的功用比较成果,见赤色框:看不清?没事,扩大。
这便是摘要中介绍的TPU1与CPU/GPU的功用比照。
再来看看寒武纪DianNao的paper,摘要中直接便是DianNao与CPU的功用的比较,见赤色框:回忆一下前史。
上个世纪呈现神经 *** 的时分,那一定是用CPU核算的。
比特币刚出来,那也是用CPU在挖。
现在现已进化成ASIC矿机了。
比特大陆了解一下。
从2006年开端敞开的深度学习热潮,CPU与GPU都能核算,发现GPU速度更快,可是贵啊,更多用的是CPU,并且,那时分GPU的CUDA可还不怎么样,后来,跟着NN模型越来越大,GPU的优势越来越显着,CUDA也越来越6,现在就成了GPU的专场。
寒武纪2014年的DianNao(NPU)比CPU快,并且愈加节能。
ASIC的优势很显着啊。
这也是为啥要开发ASIC的理由。
至于说许多公司的计划是可编程的,也便是大多数与FPGA合作。
你说的是商汤、深鉴么?确实,他们宣布的论文,便是根据FPGA的。
这些创业公司,他们更多研讨的是算法,至于芯片,还不是要点,别的,他们暂时还没有那个精力与实力。
FPGA十分灵敏,本钱不高,能够很快完成架构规划原型,所以他们天然会挑选根据FPGA的计划。
不过,最近他们都大力融资,官网也在 *** 芯片规划岗位,所以,应该也在进入ASIC研制了。
假如以FPGA为代表的可编程计划真的有巨大的商业价值,那他们何须砸钱去做ASIC?
$sudo apt-get install build-essential ipython python-setuptools -k, --insecure dont verify SSL certificate as valid僵尸 *** 指的是一组已被歹意软件感染并受歹意行为者操控的计算机。