2010-11-05 138 views
0

我記得在前一段時間讀取了來自web瀏覽器的所有GET請求都被記錄下來。它是否正確?這些日誌位於哪裏?GET請求,安全性和Web服務

如果是的話是否有任何解決方法來防止記錄您的webservice用戶名和密碼?

我知道我可以改變我的web服務接受POSTS(如果我記得正確的文章說沒有記錄),但我有這個問題是目前web服務接受GETS並返回JSON和POSTS返回XML。這似乎是一個方便的功能,我想保留。

關於這種情況的最佳做法是什麼?

回答

2

GET請求進行身份驗證時會遇到特定問題,其中用戶憑據以純文本格式作爲查詢參數發送到URL。大多數Web服務器將記錄所有請求的動詞和URL,因此,當憑證是URL的一部分時,它們將顯示在Web服務器日誌中。

另一方面,POST請求通常在請求的主體中發送數據,因此它不會顯示在Web服務器日誌中,因爲標準日誌記錄配置不記錄請求的有效負載。也就是說,即使您切換到使用POST,管理員仍然可以配置託管Web服務器來記錄每個請求的有效負載。

並回答您的具體問題 - 不,如果它們是請求URL的一部分,則無法阻止Web服務器記錄用戶憑據。但是,您可以(也應該)更改您的代碼,以至少不以純文本格式發送憑據,但至少使用由當前會話開始時由Web服務生成的哈希值對它們進行哈希處理(並將cookie例)。由於cookie未在服務器上記錄,並且會話之間的哈希值發生變化,因此有人無法僅從日誌文件提取憑據。

在附註上,您還應該更改服務,以根據請求中指定的接受內容類型(而不是請求動詞)來決定響應格式。

0

獲取請求存儲在瀏覽器歷史記錄中。這就是爲什麼當你開始在地址欄中輸入網址時,它可以自動完成。