mysql - 应用程序使用数据库授权和验证用户

标签 mysql sql oracle postgresql

我正在用 Delphi (Object Pascal) 编写一个多用户应用程序。

我想使用 MySql、Oracle 或 PostgreSQL 作为数据库。

我有一个带有用户名和密码列的Users表。 (我希望每个用户都有单独的数据库登录)

当然,应用程序本身必须连接到数据库并通过输入的用户名和密码组合对用户进行授权。

我猜 SAP、Sage 或社交网络等软件也会使用相同的方法?

因此应用程序必须知道数据库登录用户名和密码才能连接到数据库,然后检查Users表。

<小时/>

我的问题是:

我应该在哪里保存应用程序的数据库登录用户名和密码,以便它可以检查Users 表? 我不想在应用程序中对它进行硬编码,因为它可以通过逆向工程轻松访问,然后用于直接连接到数据库。

最佳答案

老实说,最好的方法是遵循服务器的最佳安全实践。您可以使用盐,但哈希函数也必须存在于服务器上,如果黑客首先可以访问服务器,那么他们很快就会找到哈希并提取密码。

我认为高效的组织实际上通过默默无闻产生了一些安全性。也就是说,将数据库连接凭据和字符串放入配置文件中。尽管如此,对应用程序代码的访问将为黑客提供获得他们想要的东西的线索,但这并不意味着您不应该遵循最佳编码实践。

然后,锁定你的盒子。与您的安全团队合作,确保任何不想访问的人都无法访问它。

关于mysql - 应用程序使用数据库授权和验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946746/

相关文章:

php - SQL查询按给定日期范围对记录进行分组

mysql - 更好的请求查询最后一次插入

mysql - 连接 ODK 聚合和 MySQL 服务器

sql - Group By 子句中的别名 - 标识符无效

Mysql 使用连接表选择每个轨道的多个艺术家记录

mysql - 转换为分区表

mysql - SQL 查询计算的数据多于现有数据

mysql - 检查内连接表是否存在

sql - 连接语句中的错误 "ORA-00932: inconsistent datatypes: expected - got BLOB"

sql - 更改两小时之间耗时的输出格式