此登录角色将由应用程序用于所有操作,独立于登录的应用程序用户。
如何在应用程序代码中保护此登录角色密码?
发布于 2018-06-14 21:15:13
考虑使用yaml file来存储您的凭据,或者将它们放在.pgpass file中。
发布于 2018-06-14 21:15:09
您可以使用的主要三种身份验证机制大致按流行顺序排列为:
kinit键入密码或加载凭据文件)。在这些服务中,我个人更喜欢Kerberos,如果该服务在相关网络上受支持的话。第二个最好的选择是LDAP,因为它允许集中控制密码更改和撤销等操作。第三个是常规的密码机制,它可以在任何环境下工作。
所有可用机制的详细信息都在这里:https://www.postgresql.org/docs/10/static/auth-methods.html
发布于 2018-06-14 21:23:39
你不能。
如果用户可以直接访问应用程序(他们可以直接启动它),那么应用程序中硬编码的所有内容都应该被用户视为可访问的。无论你能使用什么混淆方法,有决心的攻击者都能找到它(通过反编译器和调试器)。
如果存在断点,则一切都不同:
front end application back end application
launched by user --/--> launched with a sytem user
local machine local or remote machine这通常是web应用程序的用例:用户没有访问应用程序代码的权限,也没有启动它,因此数据库密码可以保存在配置文件中-管理员始终可以访问它。即使所有这些都运行在同一台机器上,像样的操作系统也允许访问保护,以防止未授权的用户访问后端程序。对于后一种情况,前端和后端可以通过套接字、命名管道、消息或几乎任何其他IPC机制进行通信。
TL/DR:唯一安全的方法:
https://stackoverflow.com/questions/50858164
复制相似问题