![使用 pg_connect() 进行密码管理?](https://linux22.com/image/592818/%E4%BD%BF%E7%94%A8%20pg_connect()%20%E8%BF%9B%E8%A1%8C%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%EF%BC%9F.png)
我是第一次使用 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 中。