0

我是 PHP 和 SQL 的初学者。也许这是一个愚蠢的问题,但我真的很想听听专业人士的意见,因为我也打算进入网站行业。

当我们尝试在网站上进行 sql 查询时,例如通过 PHP,我们需要在这样做之前与数据库建立连接:

$mysqli = new mysqli("localhost", "root", "password", "my_db");

但是这样做让我很烦,因为它对我来说看起来不安全。我必须通过有机会暴露给网络用户的脚本传递密码。

有没有更安全的方式将密码传递给 SQL 命令?专业行业的人将如何处理这个问题?

4

4 回答 4

2

这是正确的方法。

通常密码在一个变量/常量中,并且该变量被传递给这个命令。

如果从 PHP 服务器提供此文件,Web 上的用户将无法看到此文件的来源。因此他们永远不会看到密码。

于 2012-06-26T20:18:31.970 回答
0

这在正常情况下是正确和安全的。PHP 是一种服务器端语言,因此所有代码都在服务器上进行评估,只有输出发送到客户端。因此,您的数据库凭据将永远不会传输给用户。

当然,如果您的服务器配置不正确,并且它以纯文本形式提供 PHP 文件而不是执行它,那么您将遇到问题。

于 2012-06-26T20:21:52.820 回答
0

PHP 文件中使用的密码通常是只允许从 localhost 访问数据库的帐户。因此,即使我知道密码,我也无法通过 Internet 访问数据库。连接必须来自同一台计算机,因此只要您保护对服务器其他服务的访问,就可以了。此外,MySQL 的默认配置是仅侦听来自 localhost 的连接。

于 2012-06-26T20:28:38.530 回答
-2

您应该使用单向加密算法,然后将加密传递到数据库中。我想重新执行 1 方式加密,这样即使有人掌握了它,他们也无法对它做任何事情。然后在检查密码是否匹配时,您将输入输入的密码并对其进行加密,然后再进行匹配的加密。您永远不会解密它,也无法解密密码。基本上,密码被加密后,您只需将其丢弃,不再使用它。

于 2012-06-26T20:22:39.557 回答