首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库连接安全性:保护脚本中连接信息的最佳实践?

问数据库连接安全性:保护脚本中连接信息的最佳实践?
EN

Stack Overflow用户
提问于 2010-11-05 01:38:07
回答 2查看 1.9K关注 0票数 1

我正在开发一个web应用程序,这将需要从在PHP和JavaScript的不同脚本的MySQL数据库的使用。我习惯了连接到db mysql_connect("host", "username", "password")的“标准”概念,但我想知道如何让这些字符串远离窥探。我的假设是,如果脚本包含连接信息,那么这些信息就可以用来进入数据库本身,破坏用户信息和其他重要数据。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-05 01:48:43

如果您拥有所需的权限,请尝试将连接信息保存在环境变量中,使用它们进行连接,然后取消设置它们。

我记得我在一些书和在线资源中遇到过这种情况,但目前谷歌的前几个页面对此一无所获。

首先,在PHP外部设置两个环境变量,如PHP_MYSQL_USER和PHP_MYSQL_PWD。请注意,您可能需要重新启动web服务器,甚至需要重新启动操作系统才能激活它们。

然后,在PHP中:

代码语言:javascript
复制
mysql_connect('localhost', getenv('PHP_MYSQL_USER'), getenv('PHP_MYSQL_PWD'));
putenv('PHP_MYSQL_USER=');
putenv('PHP_MYSQL_PWD=');

putenv在某种程度上是可选的,如果您在系统中包含不安全的第三方或用户脚本等,则使用它们会使环境变量在其余的执行过程中不可用。

通过使用这种方法,即使有人拿到了你的脚本,他们也不会知道你的数据库凭证。但请记住,如果任何人将脚本/shell上传到您的服务器,他们仍然可以看到这些变量。您可以将上传目录保存在PHP不可执行和/或权限较低的完全不同的区域。您必须检查您的上传的安全性,对于这种机制和任何其他服务器的事情。

顺便说一句,请看一看PHP PDO,而不是使用糟糕的mysql_connect()。你可以搜索出无数的原因。

票数 1
EN

Stack Overflow用户

发布于 2010-11-05 01:40:33

如果有人可以访问您的脚本的源代码来查看这些密码,那么您已经有大麻烦了。确保这些脚本具有正确的文件权限等(即只有那些需要它的人才能读取)。

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

https://stackoverflow.com/questions/4099503

复制
相关文章

相似问题

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