我不熟悉将 postgresql 与 php 一起使用,但这里似乎有些不对劲。我见过的 9/10 示例使用password
纯文本设置参数。
例如,这是一个样本
$con = pg_connect("host='localhost' dbname='testdb' user='postgres' password='password');
这是常见的做法吗?这会带来安全风险吗?如果是这样,是否有更好的方法来传递password
价值?
我不熟悉将 postgresql 与 php 一起使用,但这里似乎有些不对劲。我见过的 9/10 示例使用password
纯文本设置参数。
例如,这是一个样本
$con = pg_connect("host='localhost' dbname='testdb' user='postgres' password='password');
这是常见的做法吗?这会带来安全风险吗?如果是这样,是否有更好的方法来传递password
价值?
这是一种常见的做法。请确保服务器是安全的,您还可以启用 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
如果您没有使用明文密码,因为在这种情况下没有挑战,那么从攻击者的角度来看,您使用的任何令牌都可能是密码(即使它是哈希,也就是您需要进行身份验证的全部)。如果您担心安全性,请将数据库连接封装在 SSL 中。