隐藏PHP代码中的数据库登录信息

gau*_*ssd 7 php sql database security .htaccess

我是网络编程的初学者.我试图创建一个从SQL数据库中读取数据的简单网站.起初我只是写了我的数据库密码并直接登录到php代码:

<?php
$username = "login";
$password = "pw";
mysql_connect("server", $username, $password);
...
?>
Run Code Online (Sandbox Code Playgroud)

这显然不是一个好主意!那么(更多)更"安全"的方式是什么呢?我读到将php代码放入一个单独的文件中,这意味着不要进入网站的主要php文档,然后限制对该文件的访问.也许是通过.htaccess文件.这是要走的路吗?

Mat*_*oli 7

config.php文件和文件.htaccess是一个经典/好的方式.这是通常使用CMS或框架完成的方式.

正如所指出的JohnP,您还可以存储config.php 公共目录外部,这意味着它无法通过HTTP访问.这对于安全性来说只是好一点(如果你的.htaccess没有出错,那就没有风险).

文件结构示例:

  • config/ - >配置文件
  • lib/ - > libraries和utils PHP文件
  • public/ - >所有公共页面/文件/图像......

这样,http://www.your-site.com/指向public/,所以没有办法访问配置.但是这个解决方案意味着您可以更改根网站目录(或者它已经是这样的).

最后,你必须记住只能由Apache用户设置这个文件是可读和可写的,而不是每个人(unix文件访问权限),这样如果有人通过另一个用户访问你的服务器,他就无法读取该文件.