Chrome WebRTC泄露内网IP,惊呆了

这段时间免费申请证书的网站如雨后春笋不断冒出,看来HTTPS时代即将来临,势不可挡。

发现 https://zerossl.com/ 这家的 https://do-know.com/privacy-test.html 隐私测试页面,点进去吓一跳,我的内网IP、CPU核数都显示出来了。朋友测试说他家3个路由器级连,3个内部IP都显示出来了,这不是路由追踪(traceroute)的功能么,怎么出现在网页上😱。

测试Safari 9.1.2 没这问题,Chrome 版本 52.0.2743.82 还有这个问题,查到是WebRTC功能导致,结果Mac Chrome还不能关WebRTC,据说Chrome OS、Android 版Chrome可以关,自家的东西在乎安全,别家的就不管了么,Google不厚道啊。

Read More

RESTful API设计规范整理

随着微服务架构的流行,RESTful API也成了API事实上的标准,之前的SOAP也都转向RESTful API。 目前我参与的项目中使用 RAML 进行API设计。

在HTTP2的普及和互联网安全的威胁下, HTTP开始开始快速转向HTTPS(Chrome已对HTTP标记为不安全),RESTful API也推荐一定要使用SSL。

Read More

使用HPKP防止中间人攻击

HTTP Public Key Pinning(HPKP)是为了防止其他可信CA未经你的授权(也许是因为身份审核疏忽)为你的网站颁发证书,并用于中间人攻击(数据截获分析) 。对于浏览器来说,只要是一家已预埋根证书的可信CA颁发的证书,信任状态都是一样的,用户一般也很难识别出来是否存在伪造。

HPKP可以通过绑定你信赖的CA或证书的公钥sha256指纹来避免伪造证书造成的中间人攻击。

启用HPKP

生成Public Key指纹

pin-sha256 一般推荐使用中间证书生成指纹,也可以选择像Symantec(前身VeriSign)这样的行业知名CA的根。

PEM格式证书(常见 ):

Read More

MacVim打造Golang开发环境

环境配置

  1. 安装 MacVim:

    brew install macvim --with-lua

    PS:

    • neocomplete 插件需要lua支持
    • brew 安装macvim需要全功能Xcode,只安装了Xcode Command Line Tools 不行,App Store 下载太慢,可以找同事通过AirDrop共享 Xcode.app
    • brew linkapps macvim 可以在应用(/Applications)中找到

    Read More

Mac 上交叉编译Golang项目到Linux(sqlite3)

改造个人网站用golang + sqlite3重新搭建,替代8年前老旧的.asp程序,部署时发现go没法在Mac OSX上交叉编译到Linux,原因是go-sqlite3使用了cgo。

打算用Docker解决编译Golang程序的问题,服务器上Docker部署过项目,Mac上有尝试过boot2docker,体验不是很好,最近发现docker官方出了 Docker for Mac 基于QEMU,不用另外安装VirtualBox,也不用单独下载Linux镜像,虽然还是beta版,在Mac中使用已经非常方便和Linux一样用法,直接执行 docker ps

安装好后,一句话搞定:

Read More

MacBook CapsLock改Control键 for HHKB

最近想换机械键盘用,经过一番青轴、茶轴、红轴了解后,最后还是一步到位 HHKB

HHKB的键盘布局和常规的键盘有些不同,当然这个布局是我比较喜欢的, 特别是在配合vim时,有趣的是几年前也是因为这个原因放弃选择它。

为了在使用MacBook自带的键盘时不致于太不适应,决定把Caps Lock大小写锁定键这个黄金位置让给Control键

系统偏好设置-》键盘-》修饰键 中修改。

Read More