Results 9 comments of Chris

有个地方想请教一下,node 的官方文档写明event loop分为timer、io callbacks 、poll几个phrase,在code.c的`uv_run`函数中,确实是依次执行了这几个phrase。文档中还指出process.nextTick不属于上面任何一个phrase,而是在每个phrase的执行之后都会执行,这相当于uv_run每执行完一个phrase就被阻塞了,感觉精确阻塞一个函数好像是不可能的,不知道这在源码层面是如何实现,请指教

@xtx1130 没错,关键之处是`InternalMakeCallback`会调用`InternalCallbackScope::Close()`,`InternalCallbackScope::Close()`里面的`env_->tick_callback_function()`最终实现了nextTick的callback的运行。不过我还有的疑问是,如果上面说的是正确的,那么`InternalMakeCallback`每次都会调用`Close`,这意味着每个phrase的每个callback运行之后都会触发nextTick的callback,这貌似跟 >每个phrase的callback执行完毕之后才触发nextTick的callback 有点不符合,不知道我是错过了什么地方

please refer this issue for more information [https://github.com/nashwaan/xml-js/issues/58](https://github.com/nashwaan/xml-js/issues/58)

感觉这种污染proxy的行为就算没有websocke和可以进行啊,为何需要专门指出会发生在websocket上呢? @hhding @abbshr

回来再看还是不太明白,作者提到: > WebSocket的防御措施是mask所有从客户端发往服务器的数据,这样恶意脚本(攻击者)就没法获知网络链路上传输的数据是以何种形式呈现的,所以他没法构造可以被中间设施误解为HTTP请求的frame 不明白为何攻击者就无法获知网络链路上传输的数据了,攻击者只要建立一个钓鱼网站,则他在服务端不是依然可以获取到全部数据吗? 然后还有就是: >为防止攻击者获知网络链路中传输的原始数据,提供不可预测的掩码至关重要。 能举个例子说明一下,如果mask是可预测或者固定的话,攻击者会怎么利用这个来实施攻击? 实施污染攻击的原理是**攻击者的服务端返回了一些毒数据**,这些非法数据被proxy缓存之后具有毒性。感觉增加mask并不能阻止攻击者的服务端返回毒数据。不知道我哪里理解错了。

哦我明白了! * 当没有mask,恶意脚本能够轻松伪造一个http请求,然后让浏览器的websocket发送出去毒化proxy。 * 当有mask,脚本还希望继续伪造http请求的话,则必须知道mask的值,并根据公开的算法去构造数据,**以使得被浏览器mask之后发送出去的数据依然是http请求** !

> > > 最近在备案,尽管已经备了一段时间了但是还没好 我差不多有一个月没登录进去了,别挂啊。。。

提案号必须唯一的一个解释:https://stackoverflow.com/questions/45610160/why-does-paxos-proposalid-need-to-be-unique

这个issue汇集了很多很好的文章,点赞