忆向Blog

忆者:回忆者也,
向者:往昔者也,
忆向者:缅怀往昔铭心岁月也,
所有回不去的良辰美景,都是举世无双的好时光,
遂,我的博客取名为“忆向BLOG”!

最新推荐

C++模块     

深入剖析TB64avx2库原理

base64编码,即将一段二进制中,每6bits用一个字符表示,以将二进制转换成易读易传输的字符串。6bits正好对应64个字符,故为base64。

TB64avx2库,或者叫Turbo64avx2库,在github很容易找到,是借助于intel avx2指令集,实现base64的编码和解码,速度非常快,查表法通常已经是优化极限了,而使用SIMD指令的实现比查表法还要快8倍。

当前该库不支持url safe的base64编码和解码,故而『被迫』剖析其源码,以实现url safe的支持。

小注:何为url safe编码?标准base64使用的字符集为:... ...

 阅读全文»
Python模块     

ProcessPoolExecutor与Popen配合使用

 一直以为concurrent.futures.ThreadPoolExecutor()可以配合os.execlp(),然后并不行,os.execlp()是装载一个新的程序运行,而保持原来的pid不变,原来的stdout和stderr没有被保留到新程序,会出现如下错误:... ...

 阅读全文»
Ubuntu模块     

vmware中扩容ubuntu的根目录磁盘空间

最近给Mac(2014 mid)换了个SSD,从256GB换成了Intel 760p的1TB SSD,再也不用管磁盘空间问题了,速度也比以前快了很多。

原装SSD的速度:

更新intel 760p 1TB之后的速度:... ...

 阅读全文»
杂文模块     

为什么server返回json时必须是object,不能是array

在进行api请求时,返回的json,必须是object,而不能是array,这在很多框架里都被限定死了,当然通常你也可以自己json.encode(),然后返回一个字符串,来绕过框架的保护。那为什么api返回的结果一定要是对象,而不能是数组呢?

网上很容易找到《JSON Hijacking》,这里记录一下原理。

基于两点理由:

1. 以[]包起来的数组格式合乎js语法,能够被正确执行,而以{}包起来的对象,则不能被正确执行。

于是我们就可以伪造一个网站,然后将要攻击的目标网站的api请求作为js文件来引用:... ...

 阅读全文»

回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo