2012-10-15 9 views
5

Niedawno wdrożyłem aplikację Flask na Heroku. Zapewnia API na istniejącym API i wymaga poufnego klucza API dla pierwotnej usługi od użytkownika. Aplikacja to tak naprawdę tylko kilka formularzy, których wartości są przekazywane za pomocą ajax do konkretnego adresu URL na serwerze. Nic fajnego. Podejmuję kroki, aby nie przechowywać poufnych informacji w aplikacji i nie chcę żadnych śladów w aplikacji.Format rejestrowania routera Heroku

Patrząc na logi z heroku logs --source heroku, proces rutera heroku przechowuje wszystkie żądania HTTP dla aplikacji, w tym wnioski zawierające informacje poufne.

Czy istnieje sposób określenia formatu dziennika dla procesu heroku, aby nie przechowywać adresu URL?

+0

Czy informacje poufne znajdują się w samym adresie URL, czy po prostu w danych POST? – aezell

+0

Informacje poufne znajdują się w adresie URL trafienia ajax. – sburns

+1

W takim przypadku, czy mógłbyś użyć jakiegoś klucza do zakodowania danych przed dodaniem ich do adresu URL i dekodowania go po trafieniu na serwer? W ten sposób informacje nie znajdują się w jawnym tekście w dziennikach. Powinno zadziałać coś jak podpis z kluczem jednorazowym i wspólnym kluczem tajnym. Nie odpowiada na pytanie, ale może być rozwiązaniem problemu. – aezell

Odpowiedz

1

Jak wspomnieli inni komentatorzy, niewłaściwą praktyką jest umieszczanie informacji poufnych w adresie URL. Mogą one zostać zbuforowane lub zarejestrowane przez wiele systemów (np. Routery, serwery proxy, pamięci podręczne) podczas podróży do serwera. Istnieje kilka sposobów rozwiązania tego problemu:

  • Umieść je w Authorization header. Jest to prawdopodobnie najczęstszy sposób obsługi uwierzytelniania dla interfejsów API opartych na REST.

  • Umieść je w korpusie POST. To działa, aby wydostać się z adresu URL, ale jest trochę dziwacznie semantycznie, aby powiedzieć, że POSTINGujesz poświadczenia do niektórych zasobów (jeśli jest to interfejs REST API), chyba że jest to połączenie z logowaniem.

+0

Odtąd odświeżyłem aplikację, by używać żądań POST. – sburns

+0

Ogólnie nie mogę nie zgodzić się z tym, że umieszczanie poufnych informacji w adresie URL może być ryzykowne, ale w połączeniu HTTPS parametry adresu URL są szyfrowane. W przypadku czegoś takiego jak interfejs API, paramele adresu URL mogą mieć wiele sensu. Jednak nadal nie mam odpowiedzi na temat sposobu filtrowania ich z logów routera heroku. – McFadden

Powiązane problemy