2010-07-20 51 views
2

我不知道是否有一個安全的方式來提供一個URL的密碼(如?p = mypassword) 我怎麼能加密和解密這樣的密碼,所以它的安全。安全的方式通過URL提供密碼?

我想md5在我的情況下不起作用,因爲密碼仍然是可讀的。這是一個傳遞給ftp_connect的FTP密碼。我認爲md5在這種情況下不起作用,因爲我必須查詢一個字符串是否與md5哈希匹配。但是我不能那樣做我的情況。

有什麼想法?

回答

6

呃:通過郵寄+ SSL

SSL確保密碼不能輕易由第三方在運輸途中閱讀。通過POST發送它只需將該變量發送到URL之外的服務器,並將其保留在服務器日誌之外(希望)。這將做一個好的工作,隱藏它從瀏覽器歷史記錄或人們嗅探HTTP。

但是,當使用ftp_connect()在HTTP中對SSL進行嘲弄時,發送此明文不是ftp_login()?確保以後使用ftp_ssl_connect()到您的服務器。請參閱ftp_ssl_connect() PHP手冊條目

+4

此外,確保密碼參數不會進入您的網絡服務器日誌是一種很好的做法 – nfm 2010-07-20 22:25:11

+0

@nfm - Thanks :)已添加。 – 2010-07-20 22:31:34

2

如果您的站點在查詢字符串中接受加密的密碼,那麼加密的字符串 - 儘管不可讀 - 在功能上與密碼本身沒有區別。

如果我的密碼進入中央情報局是「密碼」,但他們會讓我進來,如果我說「5f4dcc3b5aa765d61d8327deb882cf99」,這兩個字符串作爲我的密碼,都需要保護。

+0

+1,好的點與字符串的平等......雖然__brute forcer可能不同意這種平等;) – 2010-07-20 22:30:23

+0

好點,但他似乎主要擔心有人在某處攔截查詢字符串。 – ceejayoz 2010-07-20 22:32:41

0

而不是使用單向散列(MD5,SHA1)。我認爲你需要一個加密解密功能。看看這個http://www.php.net/manual/en/function.mcrypt-encrypt.php

上例中,您可以使用密鑰進行加密並在URL中傳遞密碼。一旦PHP接收到密碼,您就可以解密密碼並使用它來連接FTP。唯一的限制是密鑰必須在PHP服務器上以及在哪裏生成URL。字符串的大小也有限制,但我認爲你一般會在這些限制內。

+0

正如用戶所建議的,通過SSL的POST是最安全/最可靠的方法。如果您必須使用GET請求,請使用加密解密方法。 – Pasta 2010-07-20 22:51:28

+0

我是否需要安裝任何東西,或者它是否帶有php? – matt 2010-07-21 02:12:43

+0

這與PHP一起使用,如果尚未啓用此擴展,則可能必須啓用此擴展http://www.php.net/manual/en/mcrypt.setup.php – Pasta 2010-07-21 10:19:07

相關問題