我正在用 Delphi (Object Pascal) 编写一个多用户应用程序。
我想使用 MySql、Oracle 或 PostgreSQL 作为数据库。
我有一个带有用户名和密码列的Users
表。
(我不希望每个用户都有单独的数据库登录)
当然,应用程序本身必须连接到数据库并通过输入的用户名和密码组合对用户进行授权。
我猜 SAP、Sage 或社交网络等软件也会使用相同的方法?
因此应用程序必须知道数据库登录用户名和密码才能连接到数据库,然后检查Users
表。
我的问题是:
我应该在哪里保存应用程序的数据库登录用户名和密码,以便它可以检查Users
表?
我不想在应用程序中对它进行硬编码,因为它可以通过逆向工程轻松访问,然后用于直接连接到数据库。
最佳答案
老实说,最好的方法是遵循服务器的最佳安全实践。您可以使用盐,但哈希函数也必须存在于服务器上,如果黑客首先可以访问服务器,那么他们很快就会找到哈希并提取密码。
我认为高效的组织实际上通过默默无闻产生了一些安全性。也就是说,将数据库连接凭据和字符串放入配置文件中。尽管如此,对应用程序代码的访问将为黑客提供获得他们想要的东西的线索,但这并不意味着您不应该遵循最佳编码实践。
然后,锁定你的盒子。与您的安全团队合作,确保任何不想访问的人都无法访问它。
关于mysql - 应用程序使用数据库授权和验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946746/