2012-07-13 50 views
1

我一直在設計時遵循良好的RESTful API實踐。其中一人恰好是非常簡單和常見的弟妹難追:REST API,HTTP動詞和訪問日誌

  • 使用GET HTTP動詞來獲取資源

爲什麼?考慮你有一個URI來獲取賬戶信息如下:

AXY_883772是在銀行系統中的帳戶ID。安全審計將提出一個警告,指出:

  1. 帳戶ID將出現在HTTP訪問日誌
  2. 帳戶ID可能會在瀏覽器的歷史緩存(儘管不太可能使用瀏覽器經常訪問一個RESTful API)

他們最終通過「推薦」應該使用動詞POST來代替。

所以,我的問題是:

我們能做些什麼呢?只要遵循安全建議並避免在大多數情況下使用GET?使用某種特殊的APACHE/IIS/NGINX訪問日誌配置,以避免日誌訪問某些URL?

+0

我想說,當它不適用於您的項目時不要編寫RESTful。 – kapa 2012-07-13 13:46:23

回答

2

如果您的網址中有敏感信息,並且您正在記錄網址,那麼您將記錄敏感信息。

因此,有兩個明顯的解決方案:

  • 不要登錄網址
  • 使用不同的URL不包含敏感信息

最後一個可以通過以下方式實現使用一些(不同的)你的服務器映射回正常的id。

如果這兩種解決方案都不適合您,那麼您無法使用GET,因此它不是很好的RESTful設計。

我意識到所有這些事情可能已經很明顯,但這是我能給出的最準確的答案。

這不值得,這不僅適用於GET,它實際上也適用於PUT,DELETE和POST。