RESTful Web Services - bezpieczeństwo

Ponieważ usługi sieci Web zgodne ze specyfikacją REST współpracują ze ścieżkami adresów URL HTTP, bardzo ważne jest, aby chronić usługę sieciową zgodną ze specyfikacją REST w taki sam sposób, w jaki zabezpieczana jest witryna internetowa.

Poniżej przedstawiono najlepsze praktyki, których należy przestrzegać podczas projektowania usługi internetowej zgodnej z REST -

  • Validation- Sprawdź poprawność wszystkich danych wejściowych na serwerze. Chroń swój serwer przed atakami typu SQL lub NoSQL typu injection.

  • Session Based Authentication - Użyj uwierzytelniania opartego na sesji, aby uwierzytelnić użytkownika za każdym razem, gdy kierowane jest żądanie do metody usługi sieci Web.

  • No Sensitive Data in the URL - Nigdy nie używaj nazwy użytkownika, hasła ani tokenu sesji w adresie URL, wartości te należy przekazać do usługi sieci Web za pomocą metody POST.

  • Restriction on Method Execution- Zezwalaj na ograniczone użycie metod, takich jak metody GET, POST i DELETE. Metoda GET nie powinna mieć możliwości usunięcia danych.

  • Validate Malformed XML/JSON - Sprawdź, czy dane wejściowe są poprawnie sformułowane i przekazywane do metody usługi sieci Web.

  • Throw generic Error Messages - Metoda usługi sieciowej powinna używać komunikatów o błędach HTTP, takich jak 403, aby pokazać zakaz dostępu itp.

Kod HTTP

Sr.No. Kod i opis HTTP

1

200

OK - pokazuje sukces.

2

201

CREATED- gdy zasób został pomyślnie utworzony za pomocą żądania POST lub PUT. Zwraca łącze do nowo utworzonego zasobu przy użyciu nagłówka lokalizacji.

3

204

NO CONTENT- gdy treść odpowiedzi jest pusta. Na przykład żądanie DELETE.

4

304

NOT MODIFIED- służy do zmniejszania wykorzystania przepustowości sieci w przypadku warunkowych żądań GET. Treść odpowiedzi powinna być pusta. Nagłówki powinny zawierać datę, lokalizację itp.

5

400

BAD REQUEST- stwierdza, że ​​podano nieprawidłowe dane wejściowe. Na przykład błąd weryfikacji, brakujące dane.

6

401

UNAUTHORIZED - stwierdza, że ​​użytkownik używa nieprawidłowego lub nieprawidłowego tokena uwierzytelniającego.

7

403

FORBIDDEN- stwierdza, że ​​użytkownik nie ma dostępu do używanej metody. Na przykład Usuń dostęp bez uprawnień administratora.

8

404

NOT FOUND - stwierdza, że ​​metoda nie jest dostępna.

9

409

CONFLICT- stwierdza sytuację konfliktową podczas wykonywania metody. Na przykład dodanie zduplikowanego wpisu.

10

500

INTERNAL SERVER ERROR - stwierdza, że ​​serwer zgłosił wyjątek podczas wykonywania metody.