粉丝219获赞511

好学前段同学,我们来看一下这个效果哈,下边呢是一个音乐播放器啊,我点击播放之后呢,上边会有一个圆形的波形图, 而且呢,这个圆形的波形啊,他会随着音乐的节奏变化而跟着变化,那么实现这个效果呢,其实不难啊,代码没几行。关键是呢,你得知道一个东西叫做 audio api 啊,你得知道这个东西, 这个玩意可不是你写一个 audio 元素,然后去调整它的配方法啊,不是那个东西哈,这个 audio api 呢,它是专门来处理音频数据的,它是跟数据相关的哈, 比方说我有一段声音,这段声音呢可能来自于一个音乐的播放,也有可能来自于我的语音,他要把这个数据拿到,然后进行处理。那么你要理解这套 api 的话,你需要知道几个核心概念啊?第一个核心概念呢是音频上下文啊,称之为 audio context。 然后另一个概念呢是处理节点。呃,我先说处理节点吧,就是一 个音频数据啊,他要处理他会经过很多的环节,每一个环节呢,就是一个节点,比方说我有这么一个节点,你给我一段声音数据,我把这些声音数据里边的噪音呢,全部给你去掉,然后呢把处理过后的数据再重新输出,那么这就是一个节点的功能, 给我一段数据,然后我给你返回一段数据,就像一个函数一样。在音频处理当中啊,这个节点啊,可以有很多,这些节点之间进行相互的连接啊,上一个节点的数据处理完了过后交给下一个节点,下个节点处理完了过后交给下一个节点,然后呢一直 好,当你所有的节点处理完数据之后呢,你还可以把这个数据呢交给输出设备,就像喇叭音箱,对吧?那么这些输出设备呢,就会把你处理过的声音给你展现出来啊, 这是节点,在我们这个例子里边用不到太多的节点啊,主要是要用到一个分析节点,他帮我们来分析音频数据啊,就这么个意思,先把节点理解清楚啊,那么知道了节点什么叫做音频上下文 文呢?音频上下文就是可以理解为所有节点的集合,他是一个环境,这个环境呢来管理这些节点啊,就这么个东西。好,先把这个东西认识清楚,然后呢就来实现这个效果了。我们到这边来啊,目前呢页面上非常简单啊,就一个 camos 啊, camos 呢大概的位置呢?在这啊,目前看不见有他背景颜色是透明的, 然后呢有一个奥迪欧元素,就播放一段声音,然后呢有个 gs 啊,这个 gs 里边目前我写了一些代码啊,这些代码呢主要是来处理开门时的啊,帮助我们去绘制。呃,这里有个做方法调用,这个方法呢要传一个数组进去啊,比方说我传一个长度为一百的数组啊,数组的每一项呢为零, 然后第二个参数呢,指的是这个数组里边每一项他可以取到的最大值,比方说我认为这个数组里边他的取值范围呢是零到二百五十五,那么就把最大值给他传进去,这个函数要做什么呢?他就在开门时帮我画一个圆出来,好看一下吧。哪里看?这就画出来了,这个圆上有一百个小点, 把他们围成一个圈圈啊,由于呢,目前数组里面每一项是零,所以呢,这个小点呢,他没有长度,那如果说我给每一项复制一下呢,用一个麦给他复一个随机值吧,二五五,那么就是零到二五五之间的一个随机值,保存看一下呢,他就变成这样了。啥意思呢?就是说我有一百个小点, 一个小点呢,对应到数组里边,这里每一个数值,这个数值越大呢,这个小点它延伸的长度就越长啊,就这个意思,它最大呢就是二百五十五,懂了意思吗?啊?这是 canvas 啊, canvas 没什么好说的,这个玩意你只要学过 canvas, 你肯定能写出来。那么现在呢,关键是我如何把这个东西 我的声音的数据给他对应上,那么这里一切的开始呢,在于我去点击了这个 audio 元素来播放音乐,所以呢,我这里去监听一下啊,这个 audio 元素啊,就这个东西,他的点击事件啊,不是点击事件啊,就是播放事件,当播放的时候要我要干嘛呢?就像刚才说的,我要去初始化一个音频上下文,初始化一个环境,我要处理这些数据了。好,那么这 这里呢,我这里定的一个变量啊,叫做一日一列车,因为这个初始化呢,只会运行一次啊,不然的话,你之后啊,每一次去点击这个东西都会去初始化一次,没必要啊,所以呢,我只需要判断一下啊,如果说没有初始化的话,我在初始化,换句话说,如果说我已经初始化了,我就不再做任何事情了, 那么初始化要做什么呢?就是创建音频上下文,那么怎么创建呢?就是来一个 context 啊,就是 outdoor context 去 new 一个 outdoor context, 完事了,这就初始化了一个音频上下文, 光有音频上下文是不够的啊,我需要去创建一些节点,那么这里首先一个问题,就是我创建什么样的节点,那么我这里呢,也 不去搞什么降噪啊,也不去搞那个其他的处理,我就是来分析数据用来分析的,所以呢,我真的要创建一个分析节点啊。 ninety sir, 通过这个音频上下文对象可以创建一个分析器节点,创建一个音频分析器节点。好,这个节点创建好了,那么这个节点他到时候怎么分析呢? 哎,他里边会提供一个函数啊,叫做 gets bite frequency data, 你要传一个数组进去,当你调用这个函数的时候,听好了啊,他会做什么事?他会以调用这个函数的时间点为准,来得到一小段时间里边的数据,比方说十毫秒啊, 在这个时间点调上这个函数,那么他就得到十毫秒以内的一些音频相关数据,把分析的结果放到这个数轴里边去, 再来一次啊,他会以你调用这个函数的时间点为准,在附近取一小段时间来进行分析。分析的结果呢,他会保存到这个数组列表去, 所以可以想象得到啊,按照这个效果来说的话,他肯定要不断的去分析这个数据,那么也就是说将来我要不停的调用这个函数,因为一次他只能分析一小段时间,我要不停的调用这个函数再得到分析结果,所以呢,到时候调函数的时候肯定不在这里调用,我到时会怎么调用呢?比方说我写个函数叫做 update, 一开始调用一次,然后每一次 亏是爱的美型,我都要去调这个函数,在这个函数里边使用这个代码来进行分期,懂这意思吧?所以呢,按照这种结构的话,在代码里边我是不是应该把它提成一个全局变量对不对?然后初始化之后他是不是有值了啊?那么这里呢,我最好判断一下有没有初始化,没 用初始化的话那我就结束了啊,好,写上这么一种格式,慢慢来啊,这里边有很多问题。好,这个东西解决了肯定不在这里调用,那么接下来的问题就是当我将来啊去调用这个函数的时候,你刚才说了是得到一个分析的数据,是吧?那么那是什么数据呢?哎,什么数据的话你是可以自行决定的。第一种数据呢,就是我们这里调用的数据啊,得到这段时间内的频率数据, 除了频域数据之外呢,还有一种数据啊,叫做 gets better to make it, 它叫做时域数据,用法呢都是一样的。呃,我们这个效果里边呢,用的是频域数据,那么频域和时域有什么样的区别呢?哦,这大概说一下啊,时域数据呢,它是一个坐标系,横坐标呢表示时间中,坐标呢表示政府, 政府呢就是音量是吧?政府越大他一声音的音量就越大啊,他是这么一种东西,他是跟时间和政府相关的这么一个图啊,好,那么什么叫时域数据呢?时域数据呢也是一个坐标系,只不过呢他横坐标呢,不是时间呢,他是在那一小段时间里边不同频率的声音,他的能量或者叫功率。那么什么叫能量和功率呢? 这个玩意跟多媒体相关啊,我就简单的说一下,可以认为它是响度。什么叫响度呢?响度可以把它认为就是以人感知到的声音大小啊,当然这样说法不准确啊。呃,我举个例子吧,比方说同样音量的东西,你用钢琴弹出来同样音量啊,和用唢呐吹出来那人 感知到的响度是不一样的,那么我们就可以认为唢呐的能量或者要功率要高于钢琴,尽管他们音量都一样,那么他这里的横坐标呢,表示频率中坐标呢表示的是功率,你可以把频率认为就是有一首交响乐,对吧?里边各种乐器,不同的乐器呢,他就有不同的频率啊,如果说你还 还是搞不清楚的话,你不用管那么多了啊,反正就是我这个小伙里面需要通过这个函数啊,得到频率图来拿到不同频率下的功率。好,那么这里就涉及到一个问题啊,我这里呢就需要给他定义好一个数组叫八分,那么这个数组的类型呢?是一个类型数组啊,就是每个数组的一项呢,他的取值范围呢,是零到二百五十五啊,这是他要求的啊,这个数组, 这个数组的长度是多少呢?问题是这个数组的长度就决定了他的分析结果到底有多精细,他越精细,他分析出来的数据就越多,他数组长度就越长, 他到底有多精细呢?这个你可以自己调控的哈,通过一个属性叫做 ft size, 那么这里常见的曲子呢?什么五幺二幺零二四二零四八啊,他必须是二的 n 次方,那么这里呢,我选择使用五幺二, 我们把它设置为五幺二之后啊,那么到时候分析出来的结果是多少呢?是五幺二的一半。那为什么是一半呢?那我没法给你解释了,反正他就是这么回事。那你这里呢,要写多少呢?要写二五六啊,我 要准备一个二百五十六长度的数组来接受它的分析结果。当然呢,你也可以使用它里边的属性啊,叫做 frequency bing can't, 这个属性呢就刚好是这个 fft size 的属性的一半,当然你也可以自己手动计算啊,都无所谓。好,我们准备好这个数组啊,到时候呢,特别是要传递这个数组来 进行分析,对吧?所以呢,我需要把这数组呢也是要放出去的啊,好,整了半天,那我们是不是就把这个节点就创建好了?那现在创建好了一个节点,那还没完啊,我 音频数据哪来啊?我是来自于我的麦克风,还是来自于我的一段音频的播放,所以说我还要配置这个音频上下文的数据来源,这是这件事要做的,怎么来配置呢?非常的简单啊, 可以使用这个 audio context, 里边有一个 create media animate source 啊,它有很多种音频来源,其中一种呢就是来自于一个多媒体元素,像什么 video 啊, audio 啊这些东西。那么这里呢就非常简单了啊,直接填元素就可以了,就把这元素填进去啊,一会呢,完事之后啊,我再给大家试一下,不使用音频元素,而使用我的麦克 也是可以的,只是来源不同而已。那么这样子呢,就创建了一个来源节点, sos 节点,好像有两个节点了啊,一个是我们的音频来源节点,它来自于一个元素啊,就是奥迪欧元素。然后呢,有一个分析器节点,那么现在还要做什么事呢?我需要把这个来源的节点啊,跟这个音频处理器就分析器的节点进行连接,那么这个连接又怎么写呢?叫做 source connect, 那个分析细节点传进去,那么这样子呢,就连接了他的音频数据就会输送到这个分析细节点。好,最终呢,把完成的数据处理之后啊,我还要把处理过后的数据输出到喇叭, 这又怎么做呢?那么你就要使用分析器节点去连接上下文的输出目标啊,就是我们的喇叭。这样子呢,你看啊,这个流程就通了,音频数据来自于元素给了这个来源节点,来源节点呢,把这个数据原封不动的交给分析器节点,分析器节点呢,把这个数据输出到我们的喇叭,不然的话,他光有分析,你可以看到屏幕上各种效果,但是呢,你听不到声音, 那也不合适,是吧?好,最后呢,不要忘记啊,要把这些意思音列成了,稍微处好,那么这个初始化工作呢,就完事了。那么接下来到这个 update 函数里边去啊,我每一次要做的事情就特别简单了,我把这个 buffer 传进去,对吧?每一次渲染的时候,我都会得到当前的分析结果,打印一下这 buffer 吧。好,来看一下啊。走,你看,随着音乐的播放,是不是这些分析数据就出来了 啊,这些数据呢,都是不同频率的功率啊,那么把这些功率呢,我现在要显示出来。怎么显示呢?那我刚才不是写了个方法吗?叫做对吧,把这个 buffer 传进去,数组传进去,然后呢,他的每一项的最大值是二五五就完事了,保存看一下呢,走就出来了 啊。不过呢,现在有一个问题啊,就是这个数组呢,他有很多地方呢是空的啊,你看一下吧,你看一下这一段,这段是不是空的啊,对吧,为什么他是空的呢?是因为在这个总的频谱里边啊,他有些频率他就没有功率,像我们人儿其实经 的频率波段并不大,因此呢,我不需要那么广的一个频谱,我只需要截取这个频谱的,比方说三分之二就可以了啊,因此呢,我这里呢,稍微处理一下吧,这些玩意根据你自己的需要了啊,比方说我定一个 offset, 我只要他前三分之二的下标的东西就可以了啊。 s pro 这个 buffer 的电视啊,三分之二乘一个二。好,我只需要这段下标就可以了, 因此呢,我定一个数组来接受吧。 datas 留一个 are 长度为 opposite, 然后循环。哎,小于 opposite, 然后每循环一次啊,把这个 i 给它复制。为啥啊?就是 buffer i 啊,把这 ditas 传进去,保存,那么这样子呢,空白的地方呢,就不多了啊。 好,那么现在还有个问题啊,就是他不是很好看啊,你看啊,这里好像断了一下是吧,为什么呢?是因为他那个频谱啊,在像一段音乐里边,他往往是这样的啊,这是我们的频谱坐标系,在音乐里边呢,往往是这段频谱比较高,他的功率比较强,后边的功率就逐渐减弱,所以说你在这个 顺时针方向上,你看到他的功率是不断减弱的,是吧?那么这里呢,实际上啊,在很多音乐播放器里边啊,他是要用权重去重新计算的,不过那一块呢,涉及到的算法是比较复杂的啊,我们这里呢就简单处理一下就可以了。 怎么处理呢?我看来一个对称啥意思呢?你看哈,我就这样做,我弄一个数组呢,长度为圆数组的两倍,然后呢这样子给他对称过来,那么这样子呢,就可以接上了是吧?呃,简单处理一下就可以了啊,不用去纠结啊。于是呢,我一个数组呢,应该是这里乘以二,然后这边呢稍微处理一下啊,就是 detaste 减 i 减 减一,等于这个八法哎,保存试一下走好,那么这样子就对称了是吧?嗯,好,没啥问题。好,那么 我就现在我就完成了这个音乐的播放,如果说你要在一开始就显示个圆圈的话,那太简单了,对吧,我们调用一下这个做方法,刚才已经试过了,给他遛一个二瑞转一个二五六吧。 c 五零啊,买的是这样子的,一开始就可以显示个圆圈了。那么现在我们再去实验一个功能啊,就是目前呢,他 音频来源来源于这个音乐,他其实可以来源于任何地方,比方说像我说的话,咱们来试一下,那么现在呢,就不是这个音频播放了是吧?那么我们现在呢,就应该是要得到我们麦克风里边的声音数据,那这个玩意怎么得到呢?我们可以使用设备 api 啊,这要调用这个 navigator media device 啊,我们的多媒体设备,然后呢,得到用户的多媒体设备传入这个配置啊,我需要得到的是用户的音频设备,他会返回一个 pro max, 如果说用户允许,他要弹个框框,问用户允不允许啊? 除非呢,用户之前允许过,否则的话他会提示用户的啊,如果说用户选择了允许,这个 pro max 会完成,完成之后呢,他会给我一个留,叫数据留,那么这样子呢,我就可以对接到这了,那 这个流之后啊,我之后创建的音频数据来源就不再是来源于一个元素了,而是来源于一个流,那么现在把流传进去好,那么这个流呢,我也不需要输出了,对吧?也不需要输出了喇叭了,除非呢,你说的话再用喇叭再输出一遍,那没什么必要是吧?你自己在 说话呀,你自己不能听见吗?所以呢,我也不需要把它连接到喇叭了,保存试一下呢。那么现在呢,你看我说话呢,他就会有相应的反应了,懂这意思吧?好,这就是关于这个音频 api 啊,其实这个 api 啊,它内容还非常非常多,它功能非常强大,包括呢,它合成声音,你可以不引入任何的音频文件, 可以用它来合成一段音乐,这都是可以的啊,你说要讲完的话,那肯定是讲不完的,通过这么一节课呢,让朋友们认识到啊,有这么一些东西啊,这就是这节课的作用了。

账号被盗, api 劫持网吧登录后应该怎么做?右上角点击账户明信,下方点击管理听令牌,点击取消对所有设备授权。这一步非常关键,没有这步操作,后面改了也没用 到网易 boss 页面左侧找到账号设置,然后再修改 apip 和交易链接就可以了。


好学前端同学,从这节课开始,我们来聊一聊对于前端开发者至关重要的一个东西,叫做 way api。 哈,此处应该有音效的。啪,给它打上去的音效是吧? 是啥呀?什么叫做 wabipi? 要了解清楚这个玩意呢?我们要从一个概念说起,什么叫做 acmascript, 也就是我们平时说的 e s, 对吧? e s 六 e s 七啊,其实从二零一五年开始啊,官方呢,就不再提倡用版本号来进行约定了,而是换成用年号,每一年他都有更新。比方说 e s 六呢,就叫做 e s 二零幺五, 一生的二零幺六,二零一七,一直到今年的二零二三。什么叫做 es? 它其实是一套规范,它不是什么代码,不是什么实线,就是一套规范。什么叫规范?就是一篇文档,这篇文档告诉你在我这套语言里边 应该怎么去定义变量,比方说用这个 var, 用这个。 net, 用这个 const 来定一个变量,他规定我们应该如何来书写循环, f o r four 来书写一个循环, y o 来书写一个循环。他是做规定的,天天就 bb, 不做具体的事。所以呢, es 它是一套标准,是一套规范,天天就 bb。 每一年更新,更新的是啥?就是那个文档 ol, 我觉得这个语言呢,可以扩充一些功能,对吧?加一些内容,加一些规范,就是这样的。 那么光有一套规范是不够的,他只是一篇文档而已。那我能写代码吗?写了代码也没法运行啊。所以呢,这套规范需要有环境的支持,比方说像浏览器就是一个环境,哎,这个环境说我愿意去 支持这个 es 语言,所以呢,我在实现这个浏览器的时候,我就要支持这个语言,让开发者呢写这个东西的时候我就知道了。哦,原来你像第一个变量,懂这意思吧?所以呢,这套规范需要环境去实现,这叫规范的实现。 那么实现这个 es 规范的环境有哪些呢?浏览器肯定算一个是吧?还有 note 环境也算一个,包括你们开发的什么小程序,他也算一个。只要 到这个环境说我支持 es 语言,那么他就必须要去实现这套规范,现在明白了吧,什么叫 es 以及什么叫环境?环境和 es 的关系是啥?那么什么叫做 api 呢? api 呢?称之为应用程序编程接口。说的再直白一点,就是给你提供好一些对象啊,一些函数啊,你可以直接用 这个 es, 规范里边不仅仅规定了语法,他还规定呢,有一些现成的对象啊,函数可以直接用的,比方说像什么 mas, 这个对象里面有各种各样的函数都可以用的,像什么数图, array, objects, 这些都是 e s 标准里边规定的。像什么数图里边各种方法,什么 filter 啊, map 啊,这些都是 e s 标准里边规定的。所以呢,这些东西通通称为标准 api, 我们也把它概括称为标准库啊, 就是这套 api 的集合。因此呢,一个环境只要实现了 es, 他宣称自己支持 es, 那么他就必须要实现这些东西,因此这些东西在漏的环境里面能用, 在浏览器里边能用,在微信小程序里边也能用,如果说不能用的话,那就要骂人了是吧?你不是说你支持 es 吗?这些标准库里边东西你怎么能不支持呢?但是在具体的环境里边啊,他除了支持标准库里边东西之外,他还给你提供了一些环境的能力, 比方说,在微信小程序里边,你不是可以使用个微信点啥啥啥,对吧?哎?在 low 的环境里边,你可以使用这个 process, 对吧?在浏览器环境里边,那就不用说了,你可以使用这个 document, 对不对?那么这些 api 呢,是环境赋予你的,所以呢,他们统称为环境 api。 比方说 low 的环境里边就统称为 node api, 微信的环境里边就称为微信 api, 或者叫小程序 api, 而浏览器环境里边就称为 wib api, 这就是 wib api 的概念。所以呢,我们学习的 wib api 一定是被限制在浏览器环境里边,脱离到浏览器环境里边,能不能用那就说不好了啊,在 low 环境里面肯定是用不了,微信环境里面呢部分能用,那么这套 api 里边有啥呢? 就是我们耳熟能详的什么动物呀,事件呀,这些东西都是 webapi, 那么 webapi 他到底有多少呢?咱们来看一下官方文档,这些全部都是 webapi, 你看一下右边的滚动条,走走走走走,注意啊,这里边每一项他可不是一个函数啊, 它里面是一堆东西,你看一下洞多么的东西够多了吧,它只是目录的一条而已,它里面是一套哈,你看一下有多少套, 别说吓到了是吧?那我咋学啊?我是不是得一个一个把它学完啊?不用,因为有些东西呢,不太常用。呃,另外呢,很多时候呢,我们是需要的时候再来查阅,不过有一些东西是我们肯定要提前知道的,不然的话开发的时候你想查都不知道到哪里去查, 你都不知道还有没有。所以呢,我们这个系列啊,我将会挑选一些东西出来啊,来给大家进行讲解,就是从这个目录里边我觉得比较重要的同学需要掌握的。哎,我就挑一些出来,懂了意思吧。啊,就是咱们这个系列做个介绍啊,所以说你要干嘛?你要关注点赞是吧,不要错过我们这个系列的每一节课。

好了,我们的微博 a p i 呢,就告于段落了,我们可以快速的回顾一下我们之前做过哪些效果,然后可以从中收获哪些经验。这是一个图片延迟加载的例子,我们使用的是 intersection 哦,不,是 offer a p i。 那么同样的 a p i 呢,可以实现图片的加载更多啊,不一定是图片啊,一个列表 无限滚动的加载更多啊,这也是我们之前实现过的例子啊。然后呢,我们也可以实现,当某一个广告或者是视频脱离适口的时候呢,可以让它暂停,回到适口的时候呢,又可以让它播放啊,也是利用相同的 api 来实现的 呃,除了这个 interesting oberver api 之外呢,我们还使用了页面可见度的相关 api 来实现这个小游戏切换标签页时,它可以实现暂停,回来的时候呢,它已经是暂停状态了,然后我们可以启动啊,继续运行啊,这么个意思。然后呢,我们也学习了爱的美景 api 来实现 gs 的动画,那么利用它呢, 可以跟用户的交互产生更多的关联和互动,实现一些逻辑控制比较复杂的动画效果啊,这是 c s 的 id max 呢,无法比拟的。我们也学过网络的 api, 可以监控网络的状态延迟和带宽,以及网络是在线的还是离线的, 根据不同的网络状态呢来实现。呃,不同的界面效果,可能会给用户一些提示啊,或者是网络状态不好的时候呢,加载一些流量,没有那么大的资源。我们也学过拖拽 api, 在这里呢,我们实现了这么一个通过拖拽来完成的课程表, 拖拽 api 呢,也可以用在各种拖拽排序啊,或者是拖拽文件上传啊之类的场景啊,都会用到。然后呢,我们也学习过跟音频合成和分析相关的 api, 那么这个圆圈呢,他是根据音乐的播放和音乐的频率来发生不同的震动。大家如果说还有印象的话,当时我们还实现了根据麦克风啊,就是我通过 说话来实现这么一个可视化的效果。然后呢,我们学习了关于音频自动播放的一些浏览器的规则和策略啊,当浏览器无法完成自动播放的时候呢,我们可以静音播放,然后呢让用户点击打开,这样子也是很多网站常见的一个做法。 然后呢,我们也学习过关于这个图片粘贴的这么一个效果,当我复制一张图片的时候呢,我可以粘贴到我们的页面上啊,这里呢是利用剪切版 api 来完成的。总之呢,在我们这个系列里边学习过很多的 api, 以及呢他的各种应用场景 是外版 api 呢,不仅仅只有这么一点,在我们这个系列的第一节课,同学们可以看到这个外版 api 的内容呢,是非常非常之多的,这里边每一项它是一组 api, 一组对象和一组函数,而不是只有一个。之前呢给朋友们看过像多姆的操作呢,他只是在这个目录里边只出现了一项,你可以想象的到多姆是什么样的体量,那么可以类比为这里边每一个 api 进去过后 提亮,而且呢不仅仅是 api 很多,同时每一个 api 他在不同的应用场景里边该如何去使用,那就是无穷无尽了,因为这里的 api 虽然多,但是呢,毕竟是知识,而知识呢,是有限的,而应用场景那是无穷无尽。 然后我从现在开始啥也不干,我就讲场景,讲到我去世那一天,我都讲不完,因为是无限的,那这就造成了一个问题,我们该如何学习? 因为面对这么多的知识和这么多的应用场景,我们有一个深深的无力感,感觉学不动了,就算能学动也记不住。那么如何来解决学习的问题? 那么这里呢,我们可以借助两个东西来类比,一个是搜索引擎,一个是 ai。 搜索引擎和 ai, 他们都能够回答用户的问题,但他们的区别在哪?你知道吗?在于搜索引擎,他是依靠的是存储, 把海量的知识和页面和各种信息存到一个数据库里边,那么根据用户的搜索了,然后得到一个结果啊,你到 到底想要什么?我在数据库里面去给你匹配,匹配过来过后呢,你自己去看。而 ai 的做法呢,是完全不一样的,他不需要那么庞大的数据部,实际上呢,整个 ai 你把他们在本地运行可能就几十个 g, 他存储的东西非常非常少,而他是靠什么来给结果的呢?当你给他一个问题或者是场景的时候,他是靠运算把那个结果算下来,你跟他说 how are you? 不是在一个数据库里边去匹配,应该回答 i'm fine thank you, 而是他通过一系列的运算算出来,应该是 i'm fine thank you。 所以说他不依赖存储,由于 ai 他不依赖存储,那么他就可以解决无限的场景问题,你给我一个新的问题,哪怕这个问题我之前没见过,但是我通过这套算法,我依然能够给你算出一个结果,尽管有可能这个结果是不正确的。 那么 ai 的这种实现原理其实跟我们人是一致的,我们人的一生是很短暂的,能够看到的东西,能够学到东西是非常有限的,但是呢,我们可以把过往的经验呢沉淀下来,当沉淀了这些经验之 后,哪怕你给我一个没有见过的东西,我也能根据过往的经验来运算出一个结果,那么可以产生你的方案,这就依赖什么呢?这就依赖我们之前的过往经验,那么由于我们沉淀的经验是根据过往的经历来决定的, 那这些过往的经历就决定了我们能够沉淀出什么玩意。你过往看到的全是垃圾,那你沉淀出来的只能是垃圾,沉淀不出来别的什么玩意。那当你给一个新的东西的时候,你通过这些垃圾的沉淀算出来的东西方案,那一定是垃圾的。 把这个人脑的运算过程呢,其实就是我们平时说的思维能力,这个思维能力啊,他可以让你去解决你从来没有遇到过的问题, 不说你的思维能力够强,哪怕这个问题没有遇到过,你依然能够出一个非常贴近完美的方案。这个思维能力有多重要呢?可以说他是一个人最重要最值钱的能力,他是区分人才和庸才的分水岭。现在这个世界已经不是说你找不到知识的, 在这个互联网上知识太他妈多了,但是就是这些知识被同样一个人看到,在不同的人的脑海里边产生的想法是完全不一样的,视野和眼光也完全不一样。那么既然这个思维能力这么重要,我们该如何来去培养这种能力呢?首先,他跟你做的项目的数量是无关的, 如果说他跟你做过的项目数量是有关系的,那我告诉你,已经超越犹豫期了,因为犹豫期就没有做过啥项目,他跟项目的数量和你的开发经验工作多少年没有任何关系, 可能有那么一丁点可以忽略不计。这就导致了有可能会出现一个应届毕业生,他没有做过任何的项目,但他的能力却强过一个工作十年,做过无数个项目的程序员。第二个呢,这个思维能力是跟你学过的知识, 因为知识呢,都是定时的,你看这个 mdi 上的文档,只有你能访问吗?只有我能访问吗?全世界所有人都能访问,而且里边看到的文字是完全一样的,不会因为说你访问了这个网站,而看到的是不一样的东西,不会的文字全 说起这些文字,也就是这些知识呢,在每个人的脑海里边都是一样的,但是为什么会造成如此大的人的差异呢?你看我们很多学员毕业之后年薪三四十万,他觉得他还这不满意,那不满意的,挑三拣四的。我说你都不知道现在是什么时候了,今年的形势这么严峻,几千块钱的工作强迫头还这不满意那不满意, 他有资本去挑,但他学会的知识跟你差不多呀,还是那个东西还能玩出什么新的花样?当然你要说你的知识呢,不是来自于这些权威的站点,而是来自于乱七八糟的地方。那你这个基本能力都达不到, 知识都不准确,他还说啥?但是就算知识是准确的,又能怎么样呢?他无法决定你的能力高低,因为思维能力对 你学过的知识是无关的。那个问题就说回来了,怎么来培养呢?只有两种办法,这个世界上你找不出第三种。第一个自己悟,你要思考,你要锻炼思维能力,你要去思考这个全世界所有的东西,你看到过的所有东西,一切的一切,不光光是技术,在我的脑海里面思考的东西,技术呢只是占其中那么一 小块。但是这个过程是非常非常漫长和痛苦,我是从小学的时候就已经有了这个思维的习惯,结果是什么呢?结果给大家看一下,这是我每天吃的药,不吃药没法睡觉的, 我不希望同学们去经历这个过程,当然这个过程中有痛苦也有喜悦。你们看我的课程看的很爽,那我去看谁的呀?我只能自己思考。当然我思考的东西呢,更多的还是和技术无关的,技术对我来说还相对简单一些,还有更多复杂的事情,但是通过这些事情就可以锻炼自己的思维能力。但这个过程我不希望同学们去经历,很痛苦。那么第二个办法呢?就是师傅带,就是我带你们, 我把我的视角和我的想法分享给你,那么这个过程就充斥在我的每一节课里边,这是我们的完整的课程目录,里边包含了零基础到就业和就业到提升,所有内容全在这里边,在我们所有的课程里边,我都不会去,仅仅给你告诉你一个知识,什么样那个东西不值钱,或者是不值那么多钱,真正值钱的是我要分享,我看到这个知识, 我想到了什么,我的视角和观点我要分享给你,无论是讲知识也好,还是讲一些效果实现也好,我都会完完整整的把我的思路告诉你,我要让你浸泡在一个环境里边,就是我大脑中的思维世界里边,请浸泡你经过几个月的时间浸泡,我不管你是零基础的就业,还是想做在职体薪,经过几个月的时间浸泡,你会完全的脱胎换骨, 这才是我们课程真正应该给的东西,而这东西我做到了,我们无数的学员出来的起点,就很有可能是很多人永远达不到的终点。那么借此机会呢,我向大家宣传一下我们杜一,我们杜一呢一直以来是做前端就业和在职提薪的机构,已经培养了数万名学员, 业学当中的薪资呢,最高达到一百万,不过呢,没有什么参考性,因为他是在美国啊,据什么公司我忘了,好像 facebook 还是微软网,但是三四十万的年薪是常态,我们也很少在短视频平台上去聊些有的没的,我们的课程讲解的深度和广度不用我多说,你自己看着 目录从头到尾这么多东西,而且绝大部分课程呢,是我主讲的,我们天天发的内容呢,就是我讲课的视频,告诉大家我是怎么去讲知识的,我是怎么去理解的,向朋友们展示我们的讲课能力和技术水平,见到的人不傻,他能够自己分辨什么东西是好的, 东西是坏的。所以呢,如果说你想在前端这个行业里边有所造诣,想要求得的发展,因为现在的发展问题就是生存问题,没有发展就没有生存,如果你想在这个行业里边过得更好,或者是生存的更好,那么我强烈推荐大家来了解一下我们的课程, 这是一套付费课程,这个没有什么必要演示的,你要让我做公益,全部免费,那你打死我我也做不到。但是呢,我可以保证的是,这套课程的价格绝对不贵,你可以多来了解了解,其实买不买的无所谓,你可以来了解。那么如果说你有兴趣,你可以进咱们评论区第一条,然后呢,加入我们的粉丝群, 根据提示来联系我们就可以了。好了,话不多说,最后呢,祝愿每一位为自己人生奋斗的学员,厚积薄发,前程似锦!

api 鞋的应,应用只要在一个网络里,我就可以远程控制我的空台,我只要这边输入好我的代码,退起来发送 啊,换一个 q 发送, okay。

大家好,欢迎来到通顿大讲堂。 今天给大家分享的是通顿 wap 解决方案,希望通过我的分享,大家能够了解当前关于我们在外部应用与 api 安全保护方面的理论思路和具体的技术应用。 如果大家对某一块主题比较感兴趣,希望深入探讨的话,我们可以线下交流。 今天分享的主要内容分三个部分外部应用及 api 保护的问题定义、外部应用与 api 保护解决方案和通证在 w a p 中的积累与实践。首先我们来看一下第一部分外部应用及 api 保护 的问题定义。舒适时代攻防格局发生的重大变化。我们可以看到几个现象。第一个,我们可以感受到身边的 银行线下网点是越来越少了。有一个数据啊,就是二零二零年到二零二三年,这三年这银行网点就关闭了九千三百四十六个。而我们知道我们的业务 需求并没有减少,我们只是从线下网点转到了线上,我们的日常工作、生活交互的重点已经转到了 app、 小程序和那个 h 五上面。 新的业务形态的兴起,也导致了新的攻击方式的出现,这是第一个现象。还有第二个现象,我们发现政府和企业都在追求数字化,数字政府、数字网点、 数字银行,甚至是数字人民币等等,他这个都是数字化转型的成果。有数据表明,百分之八十的企业目前允许 apr 进行开放共享数据和功能, 通过 api 可发挥出数据最大的潜能,越来越多比较重要的数据也通过数字化与更多的交互方产生链接, 这样就增加了那暴露面。以往的防护体系,在安全层级,防御强度甚至是防护维度都发生了巨大的变化。 第三个现象,就目前全球范围内百分之九十的攻击是由恶意爆头引起,也就是自动化攻击。因为业务的线上化、数字化,导致数据越来越多的呈现在线上,而且我们发现 数据的价值也是越来越大的。我们也经常能听到一个词叫数据资产。我们知道资产都是有价值的,资产也是需要保护的。针对外部应用上的数据,资产的数据爬虫、内容搜刮 也是愈演愈烈,威胁和攻击的范围在不断的扩大啊。每年的互网行动都能暴暴露出非常多的问题。而导致此类事件的大多都是因为攻击方利用传统保护的弱点,利用新型攻击技术对传统防御的降危打击。 痛点出现。传统防御面临的应对窘境,先知先觉而方能未雨绸缪。后知后觉,我就只能力争挨打。针对传统防护面临的应对 窘境,我们可以分析下原因。我们从事安全的大都知道,一般是先发现漏洞啊,后才有防护。我们经常在朋友圈看到就说赶快更新,某某厂商发布了某某漏洞呃修复补丁啊,提醒我们 赶快的修复漏洞。一般在这个时候我们都知道这个漏洞已经肆虐横行了很久了。 回归主题,以前我们针对我们的外部应用,我们做的传统防护做的更多是偏重于车库注入叉、 ss、 ssi 攻击 呃等基础防护。传统的防护往往依赖于静态的规则库,将已知的漏洞防护规则配置成策略规则,针对此类攻击的命中规则的,他能识别,能拦截。这个 优点呢是识别比较精准啊,效率比较高。缺点呢是针对没有配置的规则,或者是之前没有碰到过的,他就没有办法了。新型的攻击手段多是利用 自动化工具模拟合法的操作,多元低频多特征穿同安全就是很难识别,你识别不了,那就肯定是防护不了的。 我们安全圈有个共识,就是没有绝对的安全。就是我们可以做的就是提高攻击者的攻击成本,让攻击者觉得难度比较大,成本过高呢,就放弃攻击了。所以我的亲身经验。 我们通风的呢,有一块业务是从一三年就开始做的业务风控产品,然后为金融和其他行业犯金融场景做那个业务反欺诈和大数据智能风控的。 在东部一二线发达区银行的客户业务开展的比较好。这样呢,就被工具者盯上了。 攻击者对银行做了大量的,包括营销攻击、交易攻击和信贷其他攻击。因为东部客户对风险的把控意识相对比较强,对创新产品的接受程度也高一些,最重要的也是有预算。 我们为很多银行、支付机构,还有一些比较大的互联网公司提供了业务风控产品,提升了客户的防护能力。在此后几年呢,业务风控产品成为东部金融客户的标配。 随着东部客户群体陆续完善了,完善了业务分控体系后,我们发现在四川、贵州、青海、云南还有新疆 等地相继也出现了。就前几年类似东部被攻击的情况,我们在这一阶段又相继接到了很多中西部的订单。通过客户交流数据分析,我们发现很多的攻击设备、攻击手段。甚至在当时我们在东部判定的一些黑名单,发现 有很大一批的攻击就是原来那帮人。由此我们判定,因为东部的堡垒已经搭建完成,再攻击东部的客户,他的成本会上升,这帮攻击者就转而这样攻击防护相对较弱的客户了。 从上面看,我们发现业务形态的变化导致客户的需求也发生了变化。其实包括了几个方面啊。一个是传统外部应用的防护能力,他是不够 的,他是需要升级的,这是第一个。第二个说 api 防护的能力需要补充。传统防护几乎不对 api 做分析、做防护,很多客户甚至不知道自己开放了多少个 api, 有多少人正在通过 api 访问他们的资源。 至于更高层面的风险识别和阻断运行式保护,那就那就更没有了。第三个是数据防护需求的补充。 近年近年来的数据泄露事件及数据保护已经上升到那个法律层面。像网络安全法、数据安全法、个人意识保护法 等相关法律法规的出台,很大程度程度上将数据保护的安全级别做了升级。第四个是针对自动化攻击的防护升级。我们现在已经进入了人工智能时代, 攻击者已经在使用哎呀,就是用一些高空间的呃武器在攻击我们。而我们的防护也是需要进一步的升级的。攻防部队的注定是一场火炮对棍棒的碾压。 要解决上述这种痛点问题, gant 在二零二一年九月提出了 w a p 的概念, 并对此提出了 wap 的能力要求。这其中包含了恶意机器人的攻击防护、身份安全策略实施攻击分析、微服务和 api 保护、 dlows 保护和运行时应用程序的自我保护。下面我们来看一下 wap 是什么啊?他都能解决哪些问题。 w a p 的全称是外部应用程序和 a p i 保护。它是一个网络安全实现的集合, 通过一系列自动伸缩的云原声的安全模型来保护 api 和外部应用程序,同时降低机器人扫描的风险。每个模型都有不同的策略来提高他的安全性,帮助客户提高应用程序的性能和防护。 呃,能力这句话比较抽象啊。就简单的说, w a p 解决方案通常包括四个部分。一个是外部应用防护,机型识别、 a p i 安全保护和抗低调式攻击。 我们把那个 w a p 解决方案分成了四个部分。嗯,就第一个呢,是基础安全,也就是我们经常提到的 waff, waff 的作用的保护。呃,作用是保护基础设施及资产不受外部应用漏洞的侵害 啊。防护零对攻击。零对攻击就是指还没有发布补丁的那个漏洞攻击。 第二个是数据的应用安全,也就是我们的 a p i 安全。 a p i 安全的作用是保护核心数据, 嗯,不受侵害,防止因为 api、 月权泄露等风险造成的业务敏感数据信息泄露等问题。第三个呢,是业务安全,也就是 bot 就自动化攻击 布特防护的作用是保护业务的核心关键逻辑不受侵害。防护来自月全、自动化绕过等工具。第四个是服务保障,抗 ddos 抗底刀式的作用,主要是降低服务负载,防止过量攻击导致服务的可用性受到影响,保障客户 提供稳定的在线服务。下面我们详细来展开一下通证在这几方面是怎么做的。 在基础安全方面,我们采用的策略是动态防御隐藏攻击入口保护应用安全。 这款能力呢,是我们在二零一九年在传统袜服的基础上自主研发的动态防护引擎,加入了动态加密、动态混淆、动态令牌和调试保护等技术来提升外部应用的安全防护等级。 因为黑客在攻击外部站点的时候,一般会对外部站点进行扫描查看,通过暴露的外部代码来查看业务的逻辑和可攻击的路径,再利用漏洞来进行攻击。就跟我们小偷去偷东西偷东西一样,他需要先踩点。 攻击者对我们的站点有这样的需求,那我们作为博弈和对抗者啊,就要和他们反着来,让攻击者无法按照他们的方式进行下去。下面看一下我们具体是怎么做的。第一个应用动态加密。 攻击者想要攻击一个外部站点,一般都会按 f 杀,或者在页面上右击查看原代码来查看我们的网站,或者是网页的代码来寻找可能存在的漏洞。 动态加密功能是对网站原码进行加密保护,保护外部站点的代码安全。隐藏可能存在的攻击路径。 从我们这个张图可以看到啊,就我经过我们加密后的代码变成了无法看懂的命运。而且我们加入了动态令牌技术,每次加密算法 不同的刷新一下密码,呃密文就会变换,让攻击者无法预测我们的外部行为。即使漏洞还存在,攻击者已经看不懂代码了,也就没有办法找到攻击入口了,这样就提升了攻击者的攻击难度。 第二块是应用动态混淆保护站点的内容。这个功能是对网站原码进行混淆加固,将原本简单易懂的原码转化为复杂难懂的代码,从而防止网站被调试、被破解和被分析。 因为每次混淆的算法不同,这个一般针对重要的内容,防止别人怕去复制而增加攻击者的攻击难度。 下面一个是叫放表单保护,攻击者在攻击时一般会使用,经常会使用的就是抓不 工具来获取你的账号密码。放表单保护的作用是对账号密码的动态保护,在输入账密提交的那一刻,通过放表单元数值的动态变换,将账号和密码的信息变成与之前完全不同的信息。 可以有效的保护放入表单元素向服务器传输过程中的安全性,避免重放攻击和数据拦截。下面一个是风险按键, 下面是风险按键自定义防护开关。我们知道有 网站的数据是不允许复制的,比如我们经常看到的百度文库啊,然后道客巴巴,因为他们的盈利模式就是靠收费下载,所以开发了防辐射的功能。有很多网站并没有开发这些功能, 但在部署了我们的产品以后,风险按键开关可以禁掉存在风险的按键,比如说 f 十二鼠标右键,或者是组合按键,比如说 ctrl c、 ctrl v 这种复制粘贴这种功能。 通过禁掉这些风险按键来实现。调试保护,让攻击者查看网页原码,调试原码复制页面的内容的代价提高。 动态防护引擎通过动态加密、动态混淆、动态令牌调试保护等等功能,比较全面的提升了 外部占点的防御力。 a p i 保护 我们知道,安全往往隐藏在未知里面,未知的僵尸、 apr 未知的影子, apr 未知的敏感数据暴露,根源都在于企业对 api 的资产全貌的未知。 为了实现 a p i 的安全,首先应该对系统实现全面的 a p i 资产盘点,对 a p i 资产盘点到 a p i 路径折叠与规范化,再到进一步的敏感数据暴露面清点。 w a p 呢?基于 数据分析,不需要改变用户现有的部署架构,就可以实时的盘点流量中的 a p i 资产。全自动的树立 a p i 列表、资产 apr 参数、资产 apr 调用方法等多维度 apr 资产清单,达到 apr 资产可知, 并可对已识别的 apr 进行深度扫描。发现漏洞。直接以报告的形式向企业管理者展现高、中、低漏洞位置、漏洞描述和漏漏洞的修复建议, 且可根据描述进行修复,防止系统带着漏洞上线,在后续运营过程中造成公大的损失。当 api 应用缺少监控时, 会给潜在的攻击者足够的时间来建立对受损 a p i 的访问,并保持长期的连接。这种隐形攻击会导致企业财产伤愈和数据资产的损失。根据 o s 部的说法,组织检测修复漏洞的平均 时间大概在两百多天,因此 it 人员需要在更短的时间内发现 api 应用的异常情况。我们的 wap 在 api 运行时 会进行实时的监控,对未经身份验证的 apr 进行阻断,以防止未经验证的 apr 访问敏感数据的资源。 对传输过程中的数据进行监测,防止敏感数据泄露和提交恶意执行文件。对 api 访问频次进行监测,防止恶意攻击和破解 api 造成服务的资源浪费,影响我们正常的业务开展。 在大部分的情况下,恶意爬虫和薅羊毛就是通过 api 的呃高频访问来获取数据和抢占资源。随着攻防面的变化及攻击者手段的隐秘多变,在 api 运行时,加强外部风险感知能力和风险阻断能力的建设尤为重要,这样才能及时准确的感知到 a p i 的任何滥用情况,并及时的阻断攻击者的进步行动。 api 保护的第一步有识别 api 资产。一个应用漏洞存在着大量的 api, api 通常对应着大量高价值服务和数据,也被各种爬虫和黑客高度关注。 因此,我们运营者需要清楚的了解一个应用系统创建的 api 有哪些, api, 会用在什么地方,将携带什么类型的信息。 wap 基于数据流量自动化,对 api 流量认证的请求进行路径转移归类, 自动的发现业务潜在的 api 接口进行梳理和盘点,让运营者轻松了解 api 资产现状,同时实时感知每个 api 接口的防范情况,综合进行监控。 在应用系统研发和运行的过程中, a p r 不可避免的会产生漏洞。缺陷是天生的,漏洞是必必然的。 开发者编写的代码和不当的配置非常容易引入安全风险。我我爸是不是在二零一九年提出针对 api 的十项常见风险清单,其中有常见的加密、健全等协议问题,同时也 包含外部入侵、中间键入侵及数据泄露风险。 w a p 可对 a p i 进行严密的 安全测试和模拟攻击,清楚的向开发者展示高、中、低各种风险描述、风险位置和风险修复建议,可让 ipi 在上线之前就能及时发现和起解决潜在的漏洞和风险 决策。智能拦截程序攻击防范。数据爬取。我们知道有些企业数据就是他们的核心内容,就是他们企业生存和发展的保障。诸如视频啊、文章啊,甚至一些法院的裁判文书, 都深受数据爬虫针对其内容搜刮的侵扰。我们这边就接触过一个客户,是一个电商竞争对手,通过自动化爬虫实时获取他的 商品信息和价格动态,只要这边有调整,对手始终在第一时间就做出对应的调整。还有还有的网站就是刚刚上了一篇质量比较高的原创文章,几分钟之后他就到竞争对手的页面上了。 此类爬虫不但对内容进行爬取,对我们对那个企业的权益也是种损坏, 也会对服务的负载造成一定的影响。大量的自动化程序访问会导致服务资源的损耗。 有个客户之前就跟我们抱怨说说,原来我们的服务只需要两台服务器就可以支撑了,因为有太多的爬层访问,导致需要我要五台服务器才可以支撑,这就直接增加了客户的成本。我们 wa p 集成了决策智能引擎。决策智能引擎源自于服务金融行业的智能风控平台。我们在服务金融客户时积累了大量的防自动化攻击的经验。 使用决策引擎的同时,也把金融行业积累的经过验证的、有效果的、可用于防护的风险特征、攻击类型、人机识别。这种规则模型,还有一些名单都融合进了我们的 wap 中。 下面一个是抗 ddos, ddos 攻击是世界难题,传统的抗 ddos 主要是基于网络流量的防护,最有效果的方法是流量清洗,就把这一这一页流量引到呃,引到其他地方, 不光不攻击我们的这种这种站点。我们的抗地道石是基于应用层的防护,是传统地道石的补充。基于 决策智能的 ip 动态配置、突发数率和平均数率定义预值等方式,防止有针对性的盗窃攻击,降低服务负载,防止过量攻击。 下面对通论 w a p 的解决方案做个总结。通论 w a p 解决方案是对 各类应用场景下的流量智能监测和 api 接口进行统一的规范管理,帮助客户快速搭建数据安全框架下的外部与 api 安全防护体系。主要提供的功能和解决的痛点是第一,通过外部动态防御 隐藏攻击入口,提升站点内容保护力度,提高攻击者的攻击成本。第二,通过对 api 进行漏洞扫描和修复,发现及管理数据资产,及时发现被修复 api 中的安全漏洞。第三,通过对 api 访问进行 控制和监控,防止未经授权的访问和恶意攻击。第四, 通过基于特征行为、人机识别等模型识别与拦截,自动化风攻击,然后防范数据爬取,保护数据资产。 第五,通过决策智能动态应用配置,防范应用城的地道史,防止夫妇在防止过量攻击。通过体系化的安全模型和防护措施, 加强 api 安全管理,防御自动化攻击,防范数据泄露,提高客户应用程序防护及数据保护能力,满足合规要求,更好的保障外部应用于 api 的可靠性和稳定性,提高数据的完整性和安全性。 下面我们看一下通顿在 w a p 中的积累与实践。通顿在 w a p 解决方案的推出, 你不是一蹴而就的,这里面包含了很多年的积累,也走了很多弯路,嗯,踩了比较多的坑。 在外部应用防护方面,我们在二零一六年给金融行业做那个大数据风控,其中比较重要的积累就是风险特征啊。在金融领域的风控处置,主要 逻辑就是基于风险特征的识别。然后在二零二零年推出了动态引擎,我们集成了智能角色动态引擎,还有爬中防护引擎,然后形成现在的嗯,外部应用的防护能力。在爬中防护 这块呢,我们时间可能更早一些。通证在二零一一年呃成立的时候推出了一个叫设备指纹的技术, 第一个客户是国内最大的电商设备指纹产品是人机识别的。呃,基础技术在二零一五年,在当时比较火的那个幺二三零六逆天验证码的 引发下,然后我们推出了一个改善产品,就滑动验证来代替图片验证码。滑动验证是在设备指纹的基础上加入了 人机识别,主要的作用就是识别。嗯,人还是自动化的。呃,工具。当年我们还承接了徒步前列的电商客户的反趴中业务, 那形成了较为完善的那那个爬村引擎。嗯,在二零二零年属于智能决策引擎和动态引擎,组成了我们的动态 buff。 当时呢,产品名称叫机器人防火墙。 在 api 的安全能力积累这方面,往前追溯也是源自于金融产品呢。原来是通福镇自有的,叫数据员管理平台。后来呢,在国内前二的某农信社也有这个需求 啊。当时他们的他们用 api 网关啊,主要的作用是保证银行第三方数据的传输和交换。后来 我们用了这套系统。跟他们不熟悉后呢,他们经常会有那个金融合规的一些需求。嗯,然后我们在那个基础上有不停的迭代,加入了 api 的风险监控。 然后经过多个版本的迭代以后呢,不断加入新的安全的功能,然后形成了现在比较完善的 api 保护。 通证的最早呢,是服务于支付、电商和互联网行业。当时国内前三的支付和电商都是我们的客户。 后面的产品那个和服务延伸至金融能源。呃,然后政府、教育和医疗。然后我们通过十多年的积累,其实客户已经覆盖了像人民银行、网信办、工信部、公安部、交通部等很多家的政府机构,像工商银行、 建行、交行。还有一些嗯,那个中国移动,中国电信,中国联通,像一些京东、唯品会。还有一些嗯,携程啊,顺丰啊 这样的客户。我们积累了大量的一些客户。然后我们的 wap 解决方案,呃也在能源、金融、政府、物流等行业落地。客户的反馈是比较良好的。如果有感兴趣的朋友,可以通过线上或者线下的方式 呃联系我们,了解更多的信息。以上是我们对 w 通顿 w a p 解决方案的全部的分享内容,呃,感谢大家的耐心聆听,谢谢。

微信小程序 a p i 三大分类这节课带大家来了解小程序里面的 a p i。 小程序中的 a p i 是由咱们的宿主环境提供的,通过宿主环境提供的这些丰富的 a p i, 开发者可以方便的去调用微信的能力, 比如说我们可以去获取用户的信息,本地数据存储、调用微信支付等相关的功能。接下来我们先去了解一下小程序中 a p i 的具体分类。 小程序官方将 a p i 分为了三大类,分别是事件监听、同步及一部这三类 a p i。 接下来咱们分别看一下每一类 a p i 各自的特点。事件监听类 a p i 都是以 on 开头的,通过事件监听 a p p 可以来监听某些事件的触发。比如我们可以调用微信点 on window recess 这么一个事件来监听咱 们窗口尺寸变化的一个事件。大家都知道在浏览器里面有一个顶级的 j s 对象是 window, 在咱们微信小程序的 j s 里面也有一个顶级的对象,它就是微信。大家可以认为这个微信 就相当于是浏览器里面那个 window, 可以全局进行调用,不用声明就可以直接来进行使用。通过微信点 on window recess 这么一个事件,就可以来监听我们窗口尺寸变化。记住,凡是以 on 开头的 都是事件监听类的 a p i。 那么接下来咱们再去了解一下同步 a p i 的特点,它的特点比较多,有两个,首先同步 a p i 都是以新的结尾的,这是第一个特点。同时还有第二个特点就是同步 a p i 的执行结果,可以通过函数返回值直接来 来进行获取,如果发生异常的话,会直接抛出咱们的异常错误。比如说我们可以调用微信点 set storage think 就可以向咱们的本地存储里面去写入内容。 t 就是我们对应内容的兼职 value 就我们对应内容的值。 通过调用以 think 结尾的这个 set storage 方法,就可以以同步的方式向本地存储里面去写入内容。接下来我们再了解一下义部的 api, 一部 a p i 的特点就和咱们 j query 里面到了点 h x options 函数比较类似,需要通过 success, fail 还有 complete 这些回调函数来接收一部 a p i 执行的结果。比如说我们在微信小程序里面 可以调用微信点 request 的这个方法来发起一个网络的数据请求,那我们怎么知道他是成 功还是失败了呢?咱们可以指定一个 six s 回调,如果成功了就会执行这个回调,如果失败的话,咱们可以执行 fail 对应的回调函数。这一节课咱们给大家去介绍了一下小程序中 a p i 的三大分类,总共分成了事件监听类的 a p i 都是以 on 开头的,还有同步的 a p i 都是以 think 来结尾的,还有就是易部的 a p i。 那凡是易部 a p i, 咱们都需要通过 six s 还有 fail 还有 complete 来接收调用的结果。好,那这节课 关于咱们小程序中 a p i 的三大分类,我们就为大家介绍到这里,记得点赞、关注、收藏,咱们下期见。
