如何保证HTTP传输安全

目前大多数网站和 app 的接口都是采用 http 协议,但是 http 协议很容易就可以通过抓包工具监听到内容,甚至篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免:

  • 加密。
    比如用户名和密码,我们需要加密,这样即使被抓包监听,他们也不知道原始数据是什么。
    简单的 md5 是可以暴力破解的,所以加密方式越复杂就越安全,可以根据需要自由组合。
    常见的是 md5(不可逆)、aes(可逆)、加盐,
    例如:username = aes(username),pwd =md5(pwd + username)

  • 签名
    签名的目的是为了防止篡改,比如http://www.xxx.com/getnews?id=1,获取 id=1的内容,如果不签名通过 id=2,就可以获取 id=2的内容。

怎么签名?

通常使用 sign ,比如原链接请求的时候加一个 sign 参数,sign=md5(id=1),服务器接收到请求,验证 sign 是否等于 md5(id=1),如果等于说明正常请求。
不过,这有一个弊端,加入规则被发现,那么就会被伪造,所以适当复杂一点,还是可以提高安全性的。

  • 登录态
    http 是无状态的,也就是服务器无法自己判断两个请求是否有联系,那么登录之后,以后的接口怎么判断是否登录呢?
    简单的做法,在数据库中存一个 Token字段,当用户调用登录接口成功的时候,就给该字段设一个值(比如 aes(过期时间)),同时返回给前端,以后前端每次请求带上该值,服务器首先校验是否过期,再校验是否正确,如果校验失败就让其登录。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容