2015-08-25 45 views
5

jestem projektowania (as-relaksującego-jak-to możliwe) API i chcieliby wiedzieć, w jaki sposób najlepiej rozwiązać następujący:REST API Projekt: GET wymaga parametrów wrażliwych, które nie powinny być przechowywane w logach serwerów internetowych

  • Załóżmy, jesteśmy projektowaniu końcowy TLS pobrać jakiś zasób: GET /objects/{id}
  • nie chcemy obiekt {id}s być przechowywane w naszych dziennikach serwerów wWW, więc chcemy uniknąć za pomocą kwerendy lub URI params; co pozostawia nam parametry w treści żądania. (zakładamy, że dane są takie, że identyfikator jest wrażliwy i nie mamy dostępu do innego niewrażliwego identyfikatora). Rozumiem, że jest zalecane, aby nie mieć parametrów w treści żądania GET. HTTP GET with request body
  • Rozumiem, że użycie POST do uzyskania danych jest również zalecane, ponieważ prowadzi bardziej do stylu projektowania RPC i może generalnie być mylące.

W jaki sposób (należy) zaprojektować punkt końcowy API GET, aby uniknąć używania parametrów zapytania lub identyfikatora URI, które mogą być rejestrowane?
Czy można stosować test POST w tym scenariuszu lub czy istnieje inny kreatywny sposób?
(Uwaga: ten interfejs API NIE zostanie wystawiony na osoby trzecie)

Odpowiedz

0

Jeśli używasz Apache jako serwer można użyć CustomLog usunąć/zastąpić wartości wrażliwych, this answer zamieszczono przykładowy scenariusz.

+2

Tak, masz jednak rację, teraz muszę być bardziej konkretny. Chciałbym rozwiązać ten problem z perspektywy projektowania interfejsu API, zamiast tworzyć zależność od zespołu operacyjnego, aby pamiętać, aby NIE używać wartości CustomLog, która rejestrowałaby wartości wrażliwe. –