首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP5数据库密码会被窃取吗?

PHP5数据库密码会被窃取吗?
EN

Stack Overflow用户
提问于 2011-08-15 04:36:17
回答 4查看 963关注 0票数 5

大家好,我是php新手,我发现为了连接数据库,你可以直接在.php文件("mysql_connect($host,$user,$pass,$db")中输入密码)。我读到了哈希,我将使用哈希,但问题是,用户是否可以下载预编译的.php文件并查看我的源代码,从而获得我的数据库密码。如果他写了"domain/home“,我有一个index.php文件,它阻止用户进入目录。提前谢谢你。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-15 04:56:25

正如其他回答者所提到的,通常这应该不是问题,因为用户将无法看到PHP代码。但是,如果您计划与其他人共享代码,在将其发送给某人之前删除用户名和密码可能有点麻烦(如果您忘记了,他们将知道您的密码)。

因此,您可以将信息放在一个文件中,然后将其读取到PHP中。例如,在您的主目录中创建一个名为mysql.ini的文件,并在其中放入以下信息:

代码语言:javascript
复制
host     = "127.0.0.1"
username = "user"
password = "pass"
database = "db"

然后,将其读入PHP并进行连接,如下所示:

代码语言:javascript
复制
$settings = parse_ini_file('/home/mysql.ini');
mysql_connect($settings['host'], $settings['username'], $settings['password'], $settings['database']);

记住要确保文件位于web服务器上不能公开访问的部分,否则人们将能够读取您的登录信息。

票数 3
EN

Stack Overflow用户

发布于 2011-08-15 04:38:46

您不能在对MySQL密码进行哈希处理的同时仍连接到数据库。如果您可以使用散列密码进行连接,则攻击者也可以获得散列并进行连接。如果您在数据库中存储用户的密码,则散列(加盐时更好)是一件好事,但在存储数据库凭据时并不是真正有用的。

大多数人至少会从包含凭据的文档根目录外部require一个配置文件,而不是直接在他们的主应用程序文件中包含一个包含所有凭据的mysql_connect调用。

如果您在文档根目录之外有一个像config.php这样的文件,那么除非他们能在服务器上找到一个目录遍历漏洞,否则就无法远程访问config.php

票数 3
EN

Stack Overflow用户

发布于 2011-08-15 04:41:52

用户是否可以下载预编译的.php文件

虽然不是通过mod_php本身,但如果web应用程序(或web服务器)中存在一些安全漏洞,那么肯定会有人读取随机的PHP文件。如果攻击者可以闯入web服务器,那么他们就可以检索数据库密码--是的,即使您将密码存储在web根目录之外。

,你应该假设有一天会发生这种情况;试着限制这种信息泄露的后果。重点限制您连接的数据库帐户。web应用程序不应连接到对数据库中的每个表都具有读/写访问权限的数据库帐户。您应该限制DB用户,使其只能从需要读取的表中进行读取,并且只能对需要写入的表进行写入。

使用存储过程是添加额外安全层的好方法,因为您可以在数据库本身中执行有关允许站点用户执行哪些操作的检查。那么web DB用户应该只能通过过程与数据库交互。这将限制攻击者可以采取的操作,即使他能够发出随机的数据库查询。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7059557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档