2012-11-06 25 views

回答

2

API文檔聲明您通過HTTPS傳遞。實際上HTTP頭中的所有GET或POST信息都是SSL傳輸的一部分,因此URL參數也被加密,所以GET參數被加密。什麼不能保證是你的客戶將保留什麼。或者,如果有一些其他進程暴露了一些信息,例如您的服務器對主機名進行了DNS查找。另一個例子是,如果你有一個瀏覽器,它保存了你輸入的所有內容的歷史記錄,包括你的https網址,那麼你可能會危及你的安全。

下面是HTTP頭,您的客戶端將啓動一個TCP連接併發送類似如下:

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1 
Host: net.tutsplus.com 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120 
Pragma: no-cache 
Cache-Control: no-cache 

SSL將規定所有的信息與被髮回任何東西一起加密。我會說你使用這個API是安全的,GET和POST方法之間的唯一區別是在POST中參數將在主體中,而使用GET參數在頭中。在這兩種情況下,所有敏感信息都被加密。

1

我原則上同意這聽起來不安全。 URL可以以純文本(甚至通過HTTPS)出現在各種有趣的地方,如日誌。最好避免在任何地方使用明文。

您應該與API作者討論是否有替代策略。例如,它看起來像其中一些方法同時支持POST和GET,在這種情況下,您可能可能會POST密碼細節,這對HTTPS連接來說是一個相對安全的事情。

相關問題