IPv4 / IPv6 双栈网络优先使用 IPv4 协议栈 Windows / Linux 设置方法

最近这几年国内网络基本都普及了 IPv4 / IPv6 双栈网络,可是在使用过程中,却经常发现 IPv6 的路由比较差,无论是响应速度还是质量都堪忧,就目前阶段而言国内 IPv6 的 Peer 还不能和 IPv4 相比。

根据 RFC3484 规定在双栈网络的情况下,默认都是优先使用 v6 协议,如果无法连接或超时则会回落 v4 这个时间大概是 300ms 左右。不过在实际使用过程中发现,使用 v6 访问时异常缓慢,原因如文章开头所述。例如在更新 Linux 软件包时如果使用优先的 v6 协议栈,那你就慢慢等吧。

阅读全文»

开放 API 接口安全设计思路

开放API接口安全校验的背景:

在未进行安全处理的开放 API 接口存在诸多的风险问题,如以下三种常见场景:

1、场景一
A 公司开发的开放 API 未对接口进行安全控制,有黑客通过爬虫程序调用开放 API 查询客户信息的接口,由于没有安全验证,A 公司的客户数据通过客户信息查询 API 流出,竞争公司拥有了这批客户数据,对 A 公司造成损失。

2、场景二
A 公司开发的开放 API 未对接口进行防篡改控制,有客户购买价值 1 万元的产品,现有黑客通过技术手段,对客户提交的表单进行篡改,将 1 万元的价格改成 100 元,对公司造成了经济损失。

3、场景三
A 公司开发的开放 API 未进行接口安全控制,有黑客截取了客户的用户名,密码信息。黑客用客户的用户名,密码登录,查阅客户的相关隐私信息,盗刷了客户的信用卡,给客户造成了损失。

这三种常见未进行开放 API 接口校验的场景对公司以及客户造成损失的都是不可修补的,也反映了普遍开放式 API 接口存在的安全问题。那么,在编写开放 API 接口时如何保障数据传输安全性?




阅读全文»

Golang 第三方库学习 · xlsx

介绍

xlsx 是对新版本的Excel进行简单读写操作的golang第三方库,支持的文件格式是.xlsx

源码

第三方库源码:
https://github.com/tealeg/xlsx

本文源码:
https://github.com/Chain-Zhang/third-lib

安装

go get github.com/tealeg/xlsx



阅读全文»

Golang 源码解析 DetectContentType 检测文件类型

我们可以使用 golang 中的 net/http 包的来查找文件的内容类型或 mime 类型。

DetectContentType 函数实现了 http://mimesniff.spec.whatwg.org/ 描述的算法,用于确定数据的 Content-Type .

该函数会检查数据的前 512 字节,然后返回一个合法的 MIME 类型,例如 application/json 或类似 image/jpg .

如果不能确定数据的类型,将返回 "application/octet-stream" .

阅读全文»