|  |      1dunn      2022-12-06 11:29:53 +08:00 via iPhone 看你的安全等级了。发送到没关系 但是大部分用户可能不会更改密码或删除短信。而且还容易忘记密码 | 
|      2dddd1919      2022-12-06 13:08:12 +08:00 可能会被有短信权限的 app 读到,如果为了用户能快速登录,用户首次登录最好引导用户设置一个新密码 | 
|  |      3hicdn      2022-12-06 13:22:08 +08:00 via Android 不用密码,用短信验证码登录安全性都比用短信发初始密码强。 万一短信服务商的某个员工看了发送日志,用户又没修改密码,手贱就登录进去了。 | 
|  |      4zooo      2022-12-06 13:30:47 +08:00 发送初始密码后,首次登陆强制修改密码就好了(一个思路) | 
|  |      5IvanLi127      2022-12-06 13:44:02 +08:00 只要收密码的人安全意识高就行,他会立即上线修改密码。 如果他安全意识不高,那系统就得想逼他提高意识。 | 
|  |      8IvanLi127      2022-12-06 14:26:26 +08:00 @rocksolid 是的,所以初始密码一般是一次性的。为了避免发送初始密码开始,到用户上线修改密码这段时间被他人登录,所以得让用户手动请求,再发送这个一次性临时密码。为了识别用户,较少他人误获取这个一次性临时密码,所以申请获取时要求填写完整或部分手机号用来验证当前用户是否是系统的注册用户。最后就成了发短信验证码改密了。。。  所以初始密码用短信发送安全问题还挺多。 | 
|  |      9lisxour      2022-12-06 14:30:33 +08:00 一般发送的是一次性临时密码,只能登陆一次,且登陆后必须更改密码 | 
|  |      10815979670      2022-12-06 14:38:46 +08:00 不如发短信告诉用户初始化成功,首次登陆使用短信验证码 且在登录之后修改密码 | 
|      12leoleoleo      2022-12-06 14:56:12 +08:00 这个场景下,前提是用户本身并不会有足够的安全意识,接下来需要关注的几个问题。一是密码泄露的可能性(比较大概率的几个途径,比如你发送短信的业务本身的日志、短信渠道商的系统和用户手机终端本身)  二是密码泄露后产生影响的持续性(这个密码是永久的,还是有时效的,还是一次性的。)  三是如果真的出现泄露,影响的范围和利用的成本。(可以影响多广的范围以及自动化利用的难度是否比较大)四是这个方式的用户体验。     作为安全工程师的个人建议:发送有时间有效性限制的密码设置链接(有条件的,不同短信渠道,后台做一个标记),且链接使用后立即失效。这样子的益处是:不直接发送密码,泄露后无法直接登录利用,提高自动化利用的成本,而且解决了强制用户修改密码的问题(密码复杂度是另外一个问题)。通过有效时间的控制和使用后立即失效,可以保证在出现泄漏的情况下,除非有极强的自动化利用手段,不然对方很难大范围的利用这个泄漏来搞破坏。如果做了不同短信渠道的标记,也能作为短信渠道信息泄漏的排查线索。 直接给用户发密码的应用或者业务,除非不得已,不然就不用。 | 
|  |      13815979670      2022-12-06 15:08:07 +08:00 @rocksolid 我的意思是:第一次发短信,只告诉 "用户初始化成功,可以在登录时通过短信验证码登录" 这些信息,然后用户首次登陆时,临时获取验证码,且设置有效期,登录成功后修改密码。 | 
|      16dddd1919      2022-12-06 16:07:48 +08:00 @rocksolid 不光是安装的 app ,手机系统也会索引短信内容,相当于对手机来说只是个普通的文本信息,而且可能会被上传上去做分析,带来的间接隐患就算不过来了 | 
|      17xJogger      2022-12-06 16:15:37 +08:00 不如激进一点,用户可以没有密码,每次登录都需要验证码,如果用户觉得每次验证码都烦的话,可以自己设置密码来替代验证码登录。 缺点是验证码费用会增加,但现在好多 app 不都这么干。 | 
|      19kaneg      2022-12-06 22:18:18 +08:00 验证码之所以可以用短信发送是因为有时效性,过了一定时间,即便被人知道也没关系。但密码一般有效性没那么短,所以泄露的风险就更大。 |