谈谈登录密码传输这件小事

背景

大大小小的系统其实都离不开登录这个小小的功能,前段时间老黄在审查公司部分系统代码时,发现不少系统的登录还是很粗暴的,粗暴到让人不敢说话的那种。

说到登录,结合标题,其实大部分人应该都猜到那个粗暴到让人不敢说话的是什么问题了~~~

密码明文传输,确实是很简单粗暴的一种做法,但是带来的风险也是可想而知的。

后面老黄就抽时间去看了一下我们比较熟悉的大网站是不是也会有这种情况。

明文传输的案例

#1 下面是一个财富网站的登录接口,可以看到他们的也是挺随意的,密码也是明文传输的。

#2 下面是一个旅游相关网站的登录接口,同样也是明文传输密码的,一不小心,还用13800138000成功登录上了他家系统,吓得老黄瑟瑟发抖~~

其实这样的案例是数不胜数的,知道个大概就好了~~

上面两个就是实打实的反面教材,再来看看几个好一点的案例,有个鲜明的对比。

非明文传输的案例

#1 唯品会的登录接口

可以看到vip还是稍微严谨一点的,至少让别人猜不出来这个密码的原文是什么。

偷偷看一下js代码,可以发现是MD5了一下。

#2 拉勾网的登录接口

看上去传输的内容也是MD5过后的内容。

去看一下js代码,可以发现,拉勾传输的密码还略微复杂了一点,不是单纯的MD5,是两层MD5和加盐的结果。

上面两种是比较常见的做法了。下面再来看一个稍微不一样的。

#3 知乎的登录接口

可以看出,他们比较狠,参数是什么都不给我们看了,一点人性光辉都没,传输的内容都是完整的密文。具体是什么加密方式,这里就没有继续去看了,不外乎对称和非对称加密两种比较常见。

归纳梳理

从上面3个密文传输的案例就可以大致知道,密码传输,我们的可选方案是什么。

  1. hash

  2. 加盐 hash

  3. 加密

90%的系统,用前面2种就可以挡住不少坏人了,毕竟想撞库,也是要花不少时间的。

其中对于使用hash的方案,除了用MD5以外,还可以考虑用SHA1或SHA256等。

如果真的要用加密的方案,可以用RSA+AES的组合方案。

在传输层做了不可逆的参数传递,那么后台接口要怎么处理呢?

后台接口,在登录的时候,主要是进行验证,验证的话,就取决于创建用户时,写入数据库的密码,是对这个传输的密码做了什么操作。

所以在验证的时候,照葫芦画瓢即可。

最后老黄采取的方案是双重MD5+加盐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术分享杂七杂八技术

技术分享 听花谷 距离名宿 6~7 公里左右,丽江网红基地,有举办婚礼的地方听花谷,坐落于玉龙雪山脚下,前有玉龙雪山,后有原始森林。园内共有三处白色空间,第一处共有三层,婚礼举行,发…

java 操作日志设计_日志系统新贵 Loki,确实比笨重的ELK轻

本文同步Java知音社区,专注于Java作者:linkt1234http://blog.csdn.net/Linkthaha/article/details/100575278最近,在对公司容器云的日志方案进行设计的时候,发现主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功…

Istio1.5 Envoy 数据面 WASM 实践

Istio 1.5 回归单体架构,并抛却原有的 out-of-process 的数据面扩展方式,转而拥抱基于 WASM 的 in-proxy 扩展,以期获得更好的性能。本文基于网易杭州研究院轻舟云原生团队的调研与探索,介绍 WASM 的社区发展与实践。超简单版解释…

elasticSearch -- (文档,类型,索引)

问题:大规模数据如何检索 当系统数据量达到10亿,100亿级别的时候,我们系统该如何去解决这种问题。 数据库选择—mysql, sybase,oracle,mongodb,hbase…单点故障如何解决—lvs, F5,…

asp后台调用产品数据_后台产品经理,需掌握这些数据交互知识

人们每天都在接收信息和发送信息,在传递信息的过程中,明白对方要表达的意思。数据也是如此,在系统交换数据的过程中,就伴随着数据交互。本篇文章将为大家具体分析前端和后台的数据交互与协议。本文所说的”数据交换” 是指在计算机…

使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...

目前使用C# .net core 来实现国标gb28181标准的摄像头播放、ptz云台控制、视频回放等视频监控功能,项目可运行于linux/docker/.net core环境,也是当前非常罕有的能做到毫秒级国标gb28181公网视频传送案例,也是少有的能同时具有播放、ptz云台控…

[Java基础]字节流读数据

代码如下: package InstreamPack;import java.io.FileInputStream; import java.io.IOException;public class FileInputStreamDemo01 {public static void main(String[] args) throws IOException {FileInputStream fis new FileInputStream("D:\\JavaDemo\\java.txt&…

丁可以组什么词_有哪些量词可以用来描述生意经?

分别有:本, 一(本)生意经。笔, 一(笔)生意经。次,一(次)生意量词用名量词:表示事物的计量单位。基本定义:通常用来表示人、事物或动作的数量单位的词,叫做量词。量词 lingc,与代表可…

硬核技能k8s初体验

,Kubernetes 是一个软件系统,使你在数以万计的电脑节点上运行软件时就像所有节点是以单个大节点一样, 它将底层基础设施抽象,这样做同时简化了应用开发、部署,以及对开发和运维团队的管理。Kubernetes集群架构Kubernet…

线上问题排查流程

问题排查 针对各种常见的线上问题,梳理下排查思路。 业务问题 线上问题大多数时候都是业务问题引发的问题,当线上环境绝大多数请求都是正常,当有部分或者某一个用户有问题,此时怎么针对性的排查在当前微服务体系下,…

springboot超详细教程_CG原画插画教程:超详细线稿教程

艺学绘小编收集整理了超详细线稿教程今天我们从起稿开始1. 用圆表示出人物的头部、胸腔和骨盆,分别画出头部的十字线和身体的中线,表示头和身体的朝向。用“火柴棍”表示四肢的动作形态。▼2. 根据圆和十字线画出脸的轮廓,再在身体骨架上画出…

Asp.Net.Core WebApi 版本控制

前言在后端Api的开发过程中,无法避免的会遇到接口迭代的过程,如何保证新老接口的共存和接口的向前的兼容呢,这时候就需要对Api进行版本的控制,那如何优雅的控制Api的版本呢?开始Microsoft.AspNetCore.Mvc.Versioning 是一个微软官方推出的一个用于管理Api版本的包,配…

[Java基础]字节缓冲流

字节缓冲输出流: package InstreamPack;import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets;public class BufferStreamDemo01 {public s…

用asp.net core结合fastdfs打造分布式文件存储系统

最近被安排开发文件存储微服务,要求是能够通过配置来无缝切换我们公司内部研发的文件存储系统,FastDFS,MongDb GridFS,阿里云OSS,腾讯云OSS等。根据任务紧急度暂时先完成了通过配置来无缝切换内部文件系统以及FastDFS。…

仅仅有人物没背景的图片怎么弄_五分钟写作课 人物篇 人物的出场是个关键时刻...

我看过不少故事,人物出场了,说了几句话,然后离开,读者知道他是某人的爸爸,学校的老师,某个企业的老板,除了这些定为之外,他自己是怎样的性格?怎样的形象呢?没…