2017-05-30 47 views
2

我已经浏览过这个问题,但还没有找到解决办法。我发现的是,要么使用ini文件(大多数回复后面会说任何人都可以轻松地读取和读取这些文件),并将它们存储在另一个数据库中(显然,现在不会比以前更安全,因为其他数据库证书将被暴露 - 留下访问原始数据库)。几乎我发现的所有东西都没有回答,或者回答了上述两个,据说是不安全的选择。php店外公开数据库访问凭证

如何在公众视线之外安全地保存我的数据库访问凭证?我目前有他们直接放置在PHP使用变量。我使用GoDaddy作为我的主机,PHPMyAdmin使用数据库。

+3

web根目录以外的文件是99.9%的时间使用的选项 – rtfm

+1

[数据库连接凭证的安全存储]的可能重复(https://stackoverflow.com/questions/7220590/secure-storage-of-database-connection -credentials) –

+0

您的应用程序需要信任才能工作,因此您要么将它们存储在应用程序可以访问的某个位置(文件系统,单独的数据库),要么向它们提供请求。后者有它自己的问题,所以webroot之外的filesytem是通常的做法。 – Steve

回答

0

到目前为止最好的答案是,在公共访问之外有一个'ini'文件(与我的httpdocs文件夹相同),它包含登录信息。然后在PHP中,访问该文件,并使用解析它:

“parse_ini_file(FILELOCATION)”

这是,比如我使用的:

access.ini(在同一文件夹中的httpdocs)

[database] 
dbhost = xx.xx.xxx.xxx:xxxx 
username = xxxxxxxxxxx 
password = xxxxxxxxxxxxxxxx 
dbname = xxxxxxxxxxxxxx 

page.php文件(文件夹中的httpdocs)

$DatabaseAccess = parse_ini_file('../access.ini'); 
dbhost = $DatabaseAccess['dbhost']; 
username = $DatabaseAccess['username']; 
password = $DatabaseAccess['password']; 
dbname = $DatabaseAccess['dbname']; 

它至今仍然工作,感觉足够安全。在获得任何代码的帮助时,还可以比记住删除/替换数据库凭证容易得多。