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. |