密码/商业秘密算法:它们在php文件中是否安全?

时间:2009-08-29 03:12:13

标签: php security passwords

我的网站是使用php文件构建的。我在这些文件中使用商业秘密算法,我的数据库的root密码也存储在这些php文件中。我的数据库用于存储许多客户的私人医疗数据。

这被认为是安全的设置;任何人都可以从我的网络服务器下载php源码,因此可以访问我的root mysql密码吗?

我在ubuntu 8.04和mysql 5上运行apache 2.0和php 5.

谢谢。

7 个答案:

答案 0 :(得分:6)

您的服务器与服务器中最薄弱的一样安全。

如果有人为恰好能够读取该文件的帐户泄露弱密码 - 那么是的,现在他们拥有您的root密码。如果你碰巧在你的代码中犯了错误(或者使用别人的代码/程序带有这样的错误/“功能”),那么这也可能会让他们妥协 - 是的,这两种情况都会发生和发生。

因此,作为基本的预防措施,请为该应用程序创建一个特定帐户,该帐户仅限于该应用程序可以访问的内容。如果确实受到了损害,那就不那么有用了。

当然,root密码是您可以选择的最糟糕的事情。在安全审计中,保证这是即时失败。

答案 1 :(得分:6)

如果您要在美国存储医疗数据,您必须遵守特定的严格security requirements。其他国家可能有类似的规定。

如果不是专家,我会严重怀疑您是否会通过您描述的设置通过安全审核。首先,在纯文本的任何地方使用root密码是不好的做法。以未加密的形式存储任何敏感数据(例如医疗记录)会邀请任何可以穿透您网站的黑客来帮助自己处理数据。我怀疑HIPAA对确保所有医疗信息和患者识别信息的具体要求。

这是一个严重的问题,可能会使您的公司承担严重的责任。

答案 2 :(得分:3)

关于

  

是的,这可能是你的PHP   来源被“泄露”(交付为   它是的文本,而不是   执行)如果你的网络服务器不知何故   得到了错误的配置。

一个很好的预防措施是将所有 PHP文件(bootstrap / index文件除外)放在public_html / htdocs / www或者任何目录之外。
你可以使用像ZendGuard这样的东西 您可以简单地决定将敏感数据编译为PHP扩展(基本上只是常量)。

请记住,没有100%的保护。

答案 3 :(得分:1)

是的,如果您的网络服务器以某种方式配置错误,您的php源可能会被“泄露”(以文本形式提供,而不是执行)。

由于某些Web服务器混乱而导致代码泄漏导致php页面被传递而不是执行happened to facebook in 2007

答案 4 :(得分:0)

出于好奇,你熟悉Google Health吗?

答案 5 :(得分:0)

如果您是受保护的商标信息,那么您最好的选择是加密它以及您存储的任何密码。

这将确保即使有人闯入您的系统,他们也无法接触到它。

您可以执行以下两项操作之一,一种是使用受密码保护的特殊页面,您可以在其中粘贴具有加密对称密钥的公钥/私钥对的私钥。

这将确保除非您拥有正确的私钥,否则您将无法访问对称密钥。

私钥可以存储在usb thumbdrive上,因此您可以在将其粘贴到特殊网页后将其删除。

完成此表单后,将立即读取对称密钥,并将其存储在全局变量中,以便应用程序中的任何页面都可以使用它。

私钥在用于限制写入硬盘驱动器的机会后会立即被清除。

这个系统并不完美,但应该能够通过安全审核并保护您的信息免受黑客成功攻击。

答案 6 :(得分:0)

为每个应用程序创建mysql用户,并为该用户提供正常工作所需的最少权限。大多数应用程序只需要选择,更新和删除。 http://en.wikipedia.org/wiki/Principle_of_least_privilege

您的mysql root用户具有超级用户的特殊权限。假设您达到了最大连接限制。 MySQL总是保留超级用户的最后一个连接,这样你就可以进入并管理盒子,终止连接等等。

如果您在网络应用中使用root,那么您可能会被锁定在自己的数据库之外。