加入收藏 | 设为首页 | 会员中心 | 我要投稿 长春站长网 (https://www.0431zz.com.cn/)- 媒体智能、开发者工具、运维、低代码、办公协同!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

分库分表的 9种分布式主键ID 生成方案

发布时间:2021-02-05 11:05:35 所属栏目:传媒 来源:互联网
导读:签名+加密[证书]过程:客户端生成一个随机字符串,作为password,然后把这个password通过B公钥加密生成密文C,把A明文通过password加密生成密文B, 同时把A明文做MD5/SHA计算后的值通过A私钥加密得到签名D, 把密文B和密文C和签名D发给服务端,服务端通过私

签名+加密[证书]过程:客户端生成一个随机字符串,作为password,然后把这个password通过B公钥加密生成密文C,把A明文通过password加密生成密文B, 同时把A明文做MD5/SHA计算后的值通过A私钥加密得到签名D, 把密文B和密文C和签名D发给服务端,服务端通过私钥解密文C得到password,然后通过password解密文B就可以得到A明文,同时签名可以用来验证发送者是不是A,以及A发送的数据有没有被第三方修改过。

可以假设存在一个恶意的一方X,冒充了A,发送了密文B(password生成),密文C服务端收到数据后,仍然可以正常解密得到明文,但是却无法证明这个明文数据是A发送的还是恶意用户B发送的。签名D的含义就是A自己签名,服务端可以验证。X由于没有A的私钥,这个签名它无法冒充,会被服务端识别出来。
 

引用计数是用来记录对象被引用的次数,每当对象被创建或者被引用时将该对象的引用次数加一,当对象的引用被销毁时该对象的引用次数减一,当对象的引用次数减到零时说明程序中已经没有任何对象持有该对象的引用,换言之就是在以后的程序运行中不会再次使用到该对象了,那么其所占用的空间也就可以被释放了了。

计数增加和减少

下面引用计数增加的场景:

  • 对象被创建并赋值给某个变量,比如:a = 'ABC'
  • 变量间的相互引用(相当于变量指向了同一个对象),比如:b=a
  • 变量作为参数传到函数中。比如:ref_method(a),
  • 将对象放到某个容器对象中(列表、元组、字典)。比如:c = [1, a, 'abc']

引用计数减少的场景:

  • 当一个变量离开了作用域,比如:函数执行完成时,执行方法前后的引用计数保持不变,这就是因为方法执行完后,对象的引用计数也会减少,如果在方法内打印,则能看到引用计数增加的效果。
  • 对象的引用变量被销毁时,比如del a或者del b。注意如果del a,再去获取a的引用计数会直接报错。
  • 对象被从容器对象中移除,比如:c.remove(a)
  • 直接将整个容器销毁,比如:del c
  • 对象的引用被赋值给其他对象,相当于变量不指向之前的对象,而是指向了一个新的对象,这种情况,引用计数肯定会发生改变。(排除两个对象默认引用计一致的场景)。

只要突破这里,就可以在iframe框架中创建一个新窗口,或是从iframe中导航(navigating)到另一URL中的顶层窗口。然而,这里存在着一个让我完全意想不到的缺陷。

Navigation restriction bypass (导航限制功能绕过,CVE-2020-15174)

在我对导航限制相关代码进行检查过程中,我本认为iframe对导航(navigation)应该是有限制的,但我惊奇地发现,iframe不知怎的对导航机制竟然没有限制。我本来想着,"will-navigate"事件和preventDefault()会在导航动作绕过发生之前进行相关的捕捉或拦截,但是这却没有。

为了进行导航绕过测试,我创建了一个简单的Electron应用,然后发现,顶部导航(top navigation)中的"will-navigate" 事件并不会从iframe中跳出,具体来说,如果顶部导航的所属域和iframe的所属域相同,"will-navigate" 事件会跳出,否则就不会跳出。这并不是一种合乎常理的操作行为,而是个Bug。有了这个Bug,我就能绕过导航限制了。最后,我要做的就是,导航到可以触发XSS的iframe页面,然后在其中包含进RCE Payload代码。

 

(编辑:长春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读