2010-07-28 76 views
2

我写了一个简单的PHP脚本来登录我的手机提供商的网站,查看我的余额,并且如果邮件太低,给我发一封电子邮件。我把脚本放在远处的服务器上。自动登录和密码存储

似乎我必须将密码作为明文存储在脚本中才能将其发送到登录页面。不过,我有点不愿意这样做......

$user="foo"; 
$password="blah"; 

有没有更安全的方法?

回答

1

不能确保系统能够在您有权访问源时自动登录您。我们试着证明它。

  1. System Smart能够在您登录,您无需做任何事情。
  2. Mr. Evil可以访问System Smart的来源。
  3. System Smart知道该怎么办以您身份登录。 (从第一点开始)
  4. Mr. Evil知道什么Systems Smart知道。 (从第二点开始)
  5. Mr. Evil知道该怎么做以您身份登录。 (从第三点和第四点。)

结论:这种情况是不安全

如果您从场景安全的假设开始,这是矛盾的证据。

更新:但是,如果你想让它比纯文本更难,那么可以使用对称密钥。

+1

是的,我知道它不能保证。然而,我想知道是否有更好的想法,而不是将它存储为明文。混淆显然不是安全性,但它总比没有好。 – Klaus 2010-07-28 17:38:28

+0

在那里,进行了更新。使用对称密钥。 – 2010-07-28 19:35:06

+0

好吧,如果我使用对称密钥,我必须将其存储在文件中,所以效率并不高:/ – Klaus 2010-07-28 22:28:48

1

有一些方法可以对它进行混淆,但如果有人能够访问该文件,那么这些文件最终都不会比明文安全得多 - 因为您还需要对其进行解码才能登录提供商的网站。

1

该脚本能够将您无人值守地登录到您的提供者。

这意味着任何控制脚本的人都可以通过运行该脚本来使用该功能。

你可以做什么都不会妨碍这一点。唯一的解决方案是要么与您的密码的潜在危害生活在一起,要么只将脚本放在您控制的服务器上。

0

如果你想过度使用它,你可以设置它,使你的密码存储在使用aes_encrpyt加密的mysql数据库中,然后在另一台服务器上创建另一个脚本,以便与你的服务器进行通话通过提供用于aes_decrypt函数的盐来请求密码。