如何在PHP中保护硬编码的登录名/密码?

时间:2010-09-04 23:50:47

标签: php security login passwords password-protection

我正在编写一个简单的PHP脚本来访问Foursquare API。 PHP将始终访问相同的Foursquare帐户。暂时,我在我的脚本中硬编码了这个登录信息。保护这些信息的最佳方法是什么?

如果我遵循此主题的建议,我应该将登录信息放在网站根目录之外的配置文件中: How to secure database passwords in PHP?

这是最好的建议吗?或者有更好的方法来保护登录信息吗?

3 个答案:

答案 0 :(得分:11)

当然,最好的方法是不要存储它。

如果你不能这样做,将它存储在PHP文件中(作为变量)应该确保它不会被发送到客户端。如果您对Web服务器突然停止解释PHP非常偏执,可以将其放在文档根目录之外的单独文件中,或者拒绝访问的地方(例如通过.htaccess指令)。

答案 1 :(得分:4)

(这里有特定于linux的详细信息,如果不是您的平台,请原谅他们......)

如果您正在运行apache并且可以访问配置文件(可能不是共享主机的情况),您可以在VirtualHost配置(或httpd.conf或其他包含的配置)中添加这样的行文件):

SetEnv FOURSQUARE_PW "your password"

然后你的php脚本可以在$_SERVER['FOURSQUARE_PW']访问它。

这里的优点是你可以只使root用户可以读取该配置文件,因为apache将使用init.d以root身份启动。

答案 2 :(得分:0)

将它作为变量存储在根目录外的.php文件中,并不是一个容易猜到的文件名,这是保证您的凭据安全的合理安全方式。但是,如果您可以避免将其存储在服务器上,那么这将是最好的。提供一个登录页面,根据需要输入该信息以用于会话,然后在您不再需要时丢弃。