我正在为iOS和安卓开发一个移动应用程序,由于管理层给出的规范,它有一些安全缺陷。但是,我无法在具体的业务中解释为什么规范是不安全的,因此我无法说服他们更改他们的需求。
一些背景;当我们实现用户注册时,有两个选项可以这样做:填写移动号码(并触发SMS验证)或连接Facebook。后端是一个RESTful API.
第一个缺陷是,当我们连接Facebook时,他们仍然希望用户在应用程序中创建用户名和密码。他们唯一想使用Facebook登录的是自动填写注册表格中的一些数据,比如用户名。这意味着Facebook登录本质上是无用的,因为后端从未看到成功的Facebook登录令牌。它仍然归结为表单提交的数据。
第二个缺陷是,当我们使用我们的移动号码注册时,他们希望在SMS验证步骤之后填写密码。所以流程是:
当然,用户登录正是您所期望的--填写用户名/移动电话号码和密码。即使他们是通过Facebook注册的。
我的问题是,黑客可以利用这样的注册设置进行哪些攻击?我打算使用这一信息,使一个更具体的情况,为什么注册流程应该改变。
发布于 2018-06-02 06:18:09
黑客可以做些什么攻击来利用这样的注册设置?
虽然这将很可能不会帮助您在您的情况下改变注册流程,首先想到的是滥用短信功能。由于只需要用户名和电话号码,所以可以使用它来:
更好的解决方案是让用户输入用户名、电子邮件地址并从移动应用程序中以编程方式获取电话号码(https://stackoverflow.com/questions/2480288/programmatically-obtain-the-phone-number-of-the-android-phone)。
通过验证链接将电子邮件发送到给定的电子邮件地址。当用户单击电子邮件中的验证链接时,应该设置密码。确保一旦设置了密码,注册链接就失效了。
此外,注册链接应该有一个特定的生命周期,例如,它应该在X个时间段之后过期。
https://security.stackexchange.com/questions/186976
复制相似问题