使用 pg_connect() 进行密码管理?

使用 pg_connect() 进行密码管理?

我是第一次使用 postgresql 和 php,但这里似乎有些不对劲。我见过的 9/10 个示例password中都使用纯文本设置参数。

例如,这里有一个示例

$con = pg_connect("host='localhost' dbname='testdb' user='postgres' password='password');

这是常见做法吗?这会带来安全风险吗?如果是,有没有更好的方法来传递值password

答案1

这是一种常见的做法。请确保服务器是安全的,您还可以启用 postgres 来监听 SSL,以便传输中的纯文本密码被加密。您还可以对密码进行哈希处理并将其发送给 postgres。有关身份验证方法,请参阅下面的链接。

请参阅此处了解更多信息——https://stackoverflow.com/questions/97984/how-to-secure-database-passwords-in-php

如果您非常关心安全性,postgres 可以通过多种方式提供更多安全性。请参阅此处——http://www.postgresql.org/docs/9.1/static/auth-methods.html

答案2

如果您没有使用纯文本密码,因为在这种情况下没有质询,那么从攻击者的角度来看,您使用的任何令牌都可能是密码(即使它是一个哈希,也是您进行身份验证所需的全部内容)。如果您担心安全性,请将数据库连接封装在 SSL 中。

相关内容