我正在开发一个使用Firemonkey的android应用程序。这个应用程序使用Rest向WebApi发出请求并返回json结果。 API已经开发完毕,每个请求都需要发送用户名和密码作为查询字符串来返回数据。我的问题是:在firemonkey(android)中保存敏感数据的最佳方式是什么?当然,使用加密来存储这些数据是首先想到的,但是在firemonkey上有没有任何本地和安全的功能?如何将敏感数据保存为firemonkey中的密码?
回答
不要加密密码,当攻击者获取数据库时,他也会得到加密密钥。
只使用散列函数是不够的,只是添加盐没有提高安全性。
取而代之,用随机盐对HMAC进行约100ms的持续时间,并用散列表保存盐。使用功能如PBKDF2
,password_hash
,Bcrypt
和类似的功能。关键是要让攻击者花费大量时间通过强力查找密码。
不要在查询字符串发送用户的密码,它是明文的HTTP连接,使用HTTPS连接将被加密,但可能在服务器端的日志文件
@Zafe您对此有何评论在设备上保存访问令牌? – Marcoscdoni
是的,但根据问题,OP无法控制webservice,它以这种不安全的方式需要证书。 –
@FreeConsulting然后,OP有一个delima,要么让用户处于风险中,要么回推并拒绝贡献。海事组织我们需要停止生产不安全的产品。您是否建议致力于创建让用户处于危险之中的不安全网站? – zaph
不要保存它。如果确实需要安全,请根据需要从服务器请求。如果密钥和数据保存在同一台计算机上,则不存在安全加密等问题。
我认为问题是询问如何存储不能从服务器请求的*用户密码。尽管“不保存”在这种情况下仍然是一个有效的答案,但它似乎不是一个非常有用的答案。许多应用程序都提供了记住登录信息的功能,以便用户无需在每次启动时进行身份验证,我认为这个问题只是询问如何执行此操作。 –
@RobKennedy您使用生成的访问令牌。这已经解决了十多年的问题 - 你永远不会在客户端存储密码,也不会加密。 –
所以写下这个答案。 –
- 1. 将敏感数据保存在React Native中
- 2. 如何在React Native代码中存储敏感数据?
- 3. 客户端敏感数据的加密
- 4. 如何将敏感数据存储在Java配置文件中?
- 5. 保护C#源代码中的敏感数据?
- 6. 使用mcrypt加密敏感数据
- 7. 加密敏感数据 - DataMapper + Sinatra
- 8. EF4中的敏感数据
- 9. CodeIgniter中的敏感数据
- 10. 在SQL Server 2008中加密和存储敏感数据
- 11. 如何保护Adobe Air Apps中的敏感密钥?
- 12. 在Windows Phone中存储敏感数据
- 13. 在mongodb/node中存储敏感数据
- 14. 在indexedDB中存储敏感数据?
- 15. 在Silverlight中存储敏感数据
- 16. Android - 将敏感数据存储在sqlite数据库中
- 17. 如何保护MySQL中的敏感数据?
- 18. 最好的方法来存储敏感数据php加密
- 19. 编码敏感的Excel数据
- 20. 如何将敏感数据安全地存储在MySQL数据库中?
- 21. 如何将受密码保护的PDF保存为非密码保护的PDF
- 22. 存储敏感数据的EntityFramework
- 23. 保护敏感实体数据
- 24. 将敏感数据保存在未推送的分支中是否安全?
- 25. 针对非敏感链接的简单密码保护
- 26. 如何确保用户敏感数据的S3下载?
- 27. 如何使用JWT令牌保护SPA上的敏感数据
- 28. 如何保护处理Jquery数据的敏感PHP文件?
- 29. 如何验证从git存储库中删除敏感数据?
- 30. 如何在PHP中存储敏感数据?
这使得毫无意义我在querystring中的纯文本比Android的内部存储更容易受到攻击。 –