盼大佬解答,前端加密到底是不是脱裤子放屁?

330 天前
 userKamtao

闲暇之余,探索了一个小伙伴的开源网站,无意中发现了他的修改密码接口,是明文传输的,如下图。

后来我跟他反应了这个问题,我的观点是应该在前端 md5 加密一下,他说,他在后端做了加密处理,明文传输没问题,网站是 https ,前端加密不就等于脱裤子放屁吗?

和他几番讨论之后,无果,也有几个小伙伴觉得前端加密等于自己骗自己。

我经验比较单薄,以至于没有什么实际上的论点去论证,希望有大佬解答一下,这种场景在前端加密有没有意义。

33626 次点击
所在节点    程序员
336 条回复
996jiucai
330 天前
const params = {
account: encryptByDES(account.value),
cellPhone: encryptByDES(cellPhone.value),
password: encryptByDES(password.value),
name: encryptByDES(name.value),
}; 你想要这种东西吗???这种只是看起来是加密的而已,就是从 f12 看不出明文,但是防君子不防小人,只要到到通过 f12 在 js 文件里面去搜索,相关代码和加密用的 key 一目了然,有的甚至还会有对应的 decryptByDES 方法。那有啥实质意义。
996jiucai
330 天前
@kneo 我觉得没有几个用户会关心这种事情。甚至没有几个用户去真正关心 ui 。
dudubaba
330 天前
上面一堆程序怪咖觉得 https 就是一切,还有说 md5 不是加密的,我扔一串 md5 给你,你一个星期解的出来不?就说这最经典的场景: 前端日志上报,一般都会抓接口请求参数,你告诉我日志后台都是明文是吧?一看公司内部就没安全扫描机制,不然就是一个 p0 的安全问题!
kdwnil
330 天前
可以,但没必要。硬说有什么意义的话,那就是加大了工作量,能消磨时间
eber
330 天前
@userKamtao 不可逆的算法得出的密文密码给后端密码合规怎么判断?并且我不光说密码 我说所有的数据,不同数据后端可能需要不同的校验都传不可逆的给后端有啥用? 就算要加密也要用类似两套 RSA 的方式。你真的需要再提高一下姿势水平,如果不是姿势水平低我都怀疑你这话题是来骗币的!!!
userKamtao
330 天前
@996jiucai 没理解我意思,我的意思是前端对用户输入的密码直接 md5 ,后端直接用 md5 后的字符串。登录和注册皆是如此。
onikage
330 天前
@rrfeng 只传输 hash 相当于在当前站点 hash 就是密码。
onikage
330 天前
除非前端不用可以反编译的语言编写,否则就是脱裤子放屁。
liuidetmks
330 天前
HTTPS.HTTPS,好像用了 https ,就可以包打天下了、

那么 HMAC ,SRP 这些设计的协议也是多余?
996jiucai
330 天前
@Seria 我感觉应该没有隐私什么事情,前端对字段加密,一般也就是做个对称加密,而且前端代码对任何用户都是可见的。 对称加密 + 代码可见 = 没有隐私。
userKamtao
330 天前
@eber 不是,注册时候数据库存储了前端传过来的 md5("123456"),登录传输的 md5("123456")字符串,这两个字符串,不能比对吗?你非要逆出来 123456 才能判断是吧?
eber
330 天前
@userKamtao 你放十万个心,99.9%的企业就算最终入库的密码也不会是不可逆算法保存的。 你但凡别提 md5 都没那么离谱。前端加密也不是脱裤子放屁,两份双向 RSA 就能解决可靠性。99.9%的企业无论什么数据服务端必须能逆向成明文。
996jiucai
330 天前
@userKamtao 后端库对密码字段存的本来就是 md5 ,不论前端做不做安全。后端的安全性不会依赖前端
userKamtao
330 天前
@eber 大佬,我就单讨论密码这一个场景,密码也需要逆向?
eber
330 天前
@userKamtao 最简单的需求密码规则校验怎么实现呢?你考虑的太片面,产品要多方面考虑的。
iyiluo
330 天前
肯定不是,加密是为了提高破解的成本,前端随便搞个加密就能过滤 80% 的脚本小子。看你网站的价值了,如何被高手盯上,上啥加密也不行
K120
330 天前
站在一个安全的角度来说,前端加密多了一道墙,如果不加密比如说在一个网吧用户登录后上来一趟测试,一位懂点技术的 F12 就能看到这个用户的信息了。
cus
330 天前
什么日志上报不安全,开发不当回事非要把密码忘外送哪个端拦不住
jhdxr
330 天前
早些年都用 http 的时候是有意义的,毕竟是明文传输。印象中当年校内/人人的密码登录是 http+RSA 加密。这儿的加密,或者 https 的意义是在于传输安全。
存储(数据库)中应该存哈希而非明文也是有意义的,避免数据库被脱裤后泄露密码。当然,这和前端加密无关。

但是,上面有一些人提到说前端加密/哈希可以应对服务器被黑后导致用户密码泄露的情况。笑死,如果我都能完整控制你的服务器了,你之前怎么做有关系吗?我反正能改成让用户直接提交明文。


@dudubaba 『还有说 md5 不是加密的,我扔一串 md5 给你,你一个星期解的出来不?』彩虹表了解一下。加密和哈希的区别也是常见的区分科班和非科班的方法。
v8p
330 天前
脱裤子放屁,是为了放置放屁崩出屎。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1025454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX