2011-06-09 63 views
0

这些脚本需要什么权限才能让网站用户获得功能,但无法在脚本中读取密码?如何保护包含数据库密码的PHP脚本?

+0

你的数据库配置是在.inc文件中? – fvox 2011-06-09 18:56:12

+0

只要你的服务器不会意外地以纯文本的方式为你的PHP脚本提供服务...... – BoltClock 2011-06-09 18:56:32

+0

也,我不明白如何批准一个好的答案...我想给人们信用,但我不知道按什么按钮或任何...这个网站很混乱 – Timtam 2011-06-09 18:56:35

回答

4

将配置文件存储在文档根目录之外是个好主意,以防万一您的web服务器或php发生故障并吐出原始文本(注意:这是非常不可能的)。

但是,导航到您的网站的用户通常无法读取您的PHP脚本的内容。

+1

不像所有那么不可能 - 看看最近Tumblr发生了什么 – 2011-06-09 18:59:17

+1

好点。这就是为什么在某些情况下将敏感信息存储在文档根目录以外的地方总是一个好主意。 – 2011-06-09 19:01:44

+1

很好的答案。你应该保持至少配置文件,最好是你的大部分代码在你的文档根目录之外。 – GolezTrol 2011-06-09 19:02:10

0

假设他们在网络目录中,导航到文件只会导致他们的输出显示给用户,所以他们将是安全的,无需您设置特殊权限。如果该目录可以通过其他方式访问(例如ftp),则可能需要重新考虑为什么允许用户访问该目录中的文件。

0

创建一个文件/路径/到/秘密的东西,只有root可以读取(根,没有人或Apache)

SETENV DB_USER “myuser的” SETENV DB_PASS “为mypass”

包含该文件到阿帕奇

的配置目录或包含到httpd.conf中与

包含“/路径/到/秘密的东西”

0

第一个建议是密码应该被加密。访问密码文件的攻击者无法找到您的加密方法(即分析您的PHP源代码)将无法使用它。

但是,如果您无法存储在一个安全的地方密码,另一种选择是配置最大限制数据库服务器和放弃的密码: - 只能从网络服务器 登录 - 不能改变模式 - 可以仅最终使用1个数据库 : - 无法删除记录 - 无法更新记录 - 仅限于必要的表。 - 每秒请求数量的限制。

这比通用用户的登录通行证要安全得多,该通行证用户可以完全控制服务器上的任何数据库并从局域网上的远程位置或其他计算机进行连接。