mysql登录凭据在这方面有多安全

时间:2015-02-12 06:33:09

标签: php mysql

如果以下代码存储在www.examples.com/test.php

mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$result = mysql_query("SELECT * FROM table");
...

密码是否安全? 如果没有,防止不必要的信息访问的最佳做法是什么? 谢谢!

3 个答案:

答案 0 :(得分:1)

只要没有人可以访问test.php的文本内容,它就是安全的。合理的最佳做法是将凭据存储在访问用户无法访问的某个位置,以便如果example.com的内容放在文件夹/some/path/to/www-data中,您可以将文件放在其他位置,就像/some/path/to/credentials.php一样。这样,Web服务器仍然可以加载文件,但外部用户将无法访问它。

此外,在我们讨论MySQL / PHP最佳实践时,请注意mysql_函数已被弃用,并且有充分理由。相反,我建议您使用mysqli_(我代表改进的地方)或PDO。您可以在此处详细了解:How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

一种解决方案是将.inc文件放在非根目录中并包含此文件,因为您可以在require和include中使用文件路径

<?php

$host = 'example.org';
$username = 'myuser';
$password = 'mypass';

$db = mysql_connect($host, $username, $password);

?>

如果你必须将它放在根文件夹中,对httpd.conf的一些修改可以应用一些额外的安全性(假设你使用的是apache)

<Files ~ "\.inc$">
Order allow,deny
Deny from all
</Files>

答案 2 :(得分:0)

PHP是一种服务器端语言,这意味着客户端设备实际上永远不会看到任何PHP代码。

这意味着您拥有的任何密码都非常安全,来自客户端设备。

包含登录信息的文件仍然可以由网络服务器的特权用户访问。