2010-07-28 139 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函數的鹽來請求密碼。