2013-02-07 17 views
6

Współpracujemy z usługodawcą, który udostępnia swoje usługi za pośrednictwem RESTful API.Korzystanie z RESTful API - czy jest bezpieczny?

Możemy uwierzytelnić się za pomocą interfejsu API, przekazując nazwę użytkownika i hasło jako parametry adresu URL.

Przykład: https://example.com/api/service.json?api_user=Username&api_key=Password

wiem, że to jest za pomocą protokołu SSL. Ponieważ jednak nazwa użytkownika i hasło są częścią adresu URL, czy nie może to być przechwycone przez stronę trzecią?

Odpowiedz

7

Nie, osoba trzecia będzie mógł zobaczyć miejsce docelowe (example.com) tylko. Reszta adresu URL jest faktycznie osadzona w żądaniu.

Pomaga zrozumieć proces tworzenia żądania HTTP (lub HTTPS).

  1. określenia protokołu (w tym przypadku HTTPS, wykorzystując port 443)
  2. uzyskać adres IP serwera przy użyciu DNS
  3. nawiązać połączenie TCP do serwera (jeśli SSL jest zaangażowany, to nieco bardziej skomplikowane)
  4. problem żądanie do serwera na nowe połączenie, które będzie wyglądać

    GET /api/service.json?api_user=Username&api_key=Password

Ponieważ faktyczne żądanie jest częścią zaszyfrowanego strumienia danych, nikt nie może monitorować połączenia w celu wyodrębnienia poufnych informacji.

+0

Być może pojawić się w niezabezpieczonej formie na logów serwera WWW. – mlt

+1

@mit - tak, to może być problem. Obowiązkiem dostawcy usług jest upewnienie się, że te żądania nie są rejestrowane lub są odpowiednio cenzurowane w dziennikach. – Ferruccio

5

Jednak ponieważ nazwa użytkownika i hasło są częścią adresu URL, czy nie może to zostać przechwycone przez stronę trzecią?

Adres URL jest również wysyłany w ramach szyfrowania. Innymi słowy, proces, który zabezpiecza kanał, następuje przed wysłaniem adresu URL na serwer.

Jesteś bezpieczny.

6

Poprzednie odpowiedzi są poprawne technicznie; jeśli korzystasz z protokołu HTTPS, dane adresu URL i zapytania kwerendy będą szyfrowane przed transmisją i można je uznać za bezpieczne.

Jednakże fakt, że API jest prośbą o podanie nazwy użytkownika i hasła jako parametry kwerendy może wskazywać na nieco mniej rygorystyczna podejście do bezpieczeństwa.

Na przykład wiele serwerów internetowych domyślnie rejestruje parametry zapytania, co oznacza, że ​​poświadczenia o zwykłym tekście mogą leżeć gdzieś na dysku (a wiele firm będzie zapisywać lub tworzyć kopie zapasowe dzienników serwera WWW na niepewne sposoby) .

W skrócie: przekazywanie danych uwierzytelniających jako parametrów z zapytaniem nie jest zagrożeniem bezpieczeństwa jako takim, ale generalnie jest to zła praktyka i może być symptomatyczna dla większych problemów z bezpieczeństwem.