2011-05-11 117 views
5

即时在网络编程初学者总额。我试图创建一个简单的网站,从SQL数据库中读取数据。起初我只是写了我的数据库密码并直接登录到php代码中:隐藏数据库登录信息

<?php 
$username = "login"; 
$password = "pw"; 
mysql_connect("server", $username, $password); 
... 
?> 

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

+0

为什么不要这个是一个好主意?如果你没有回应证书,没有人可以看到他们,如果他没有访问您的网络服务器。 – Tim 2011-05-11 10:03:36

+3

好问题,但已被问及!没有更多*更安全的方式。这是一个重复的:[如何在PHP中保护数据库密码?](http://stackoverflow.com/q/97984) – 2011-05-11 10:03:37

+0

您认为这种方法有什么问题? – Gumbo 2011-05-11 10:03:47

回答

5

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

正如指出的JohnP,你也可以存储config.php外的公共目录的,这意味着它无法通过HTTP访问。这对安全性来说只是稍微好一点(如果你没有在你的.htaccess中犯错误,那么没有更多的风险)。

文件结构例子:

  • config/ - >配置文件
  • lib/ - >图书馆和utils的PHP文件
  • public/ - >你的公共网页/文件/图片...

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

最后,你必须记住要设置这个文件可读和可写的由Apache用户而已,不是每个人都(UNIX文件访问权限),因此,如果有人通过其他用户访问您的服务器,他可以”读取文件。

1

你通常把这个在配置文件中,你通过PHP访问配置值。

通常一个项目的组织使您的应用程序代码和配置代码是你的根目录之外,只有你的公共资源(index.php文件,图片,脚本或其他资源)是通过直接访问可用。

+0

如果您有权访问源代码,您可能有权访问配置文件,但在配置管理方面可能是一个好的做法 - 但它不是更安全! – 2011-05-11 10:15:43

+1

@詹姆斯安德森绝对是。我并不是暗示这比他现在所做的更安全。这更像是关于如何构建事物的指导原则 – JohnP 2011-05-11 10:26:40