如果以下代码存储在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");
...
密码是否安全? 如果没有,防止不必要的信息访问的最佳做法是什么? 谢谢!
答案 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代码。
这意味着您拥有的任何密码都非常安全,来自客户端设备。
包含登录信息的文件仍然可以由网络服务器的特权用户访问。