RESTful Web Services - Sicherheit

Da RESTful-Webdienste mit HTTP-URL-Pfaden arbeiten, ist es sehr wichtig, einen RESTful-Webdienst genauso zu schützen, wie eine Website gesichert ist.

Im Folgenden finden Sie die Best Practices, die beim Entwerfen eines RESTful-Webdienstes beachtet werden müssen:

  • Validation- Überprüfen Sie alle Eingaben auf dem Server. Schützen Sie Ihren Server vor SQL- oder NoSQL-Injection-Angriffen.

  • Session Based Authentication - Verwenden Sie die sitzungsbasierte Authentifizierung, um einen Benutzer zu authentifizieren, wenn eine Anforderung an eine Webdienstmethode gestellt wird.

  • No Sensitive Data in the URL - Verwenden Sie niemals Benutzernamen, Passwort oder Sitzungstoken in einer URL. Diese Werte sollten über die POST-Methode an den Webdienst übergeben werden.

  • Restriction on Method Execution- Ermöglichen Sie die eingeschränkte Verwendung von Methoden wie GET-, POST- und DELETE-Methoden. Die GET-Methode sollte keine Daten löschen können.

  • Validate Malformed XML/JSON - Überprüfen Sie, ob wohlgeformte Eingaben an eine Webdienstmethode übergeben wurden.

  • Throw generic Error Messages - Eine Webdienstmethode sollte HTTP-Fehlermeldungen wie 403 verwenden, um den verbotenen Zugriff usw. anzuzeigen.

HTTP-Code

Sr.Nr. HTTP-Code & Beschreibung

1

200

OK - zeigt Erfolg.

2

201

CREATED- Wenn eine Ressource erfolgreich mithilfe einer POST- oder PUT-Anforderung erstellt wurde. Gibt den Link zur neu erstellten Ressource mithilfe des Standortkopfs zurück.

3

204

NO CONTENT- wenn der Antwortkörper leer ist. Zum Beispiel eine DELETE-Anfrage.

4

304

NOT MODIFIED- Wird verwendet, um die Netzwerkbandbreitennutzung bei bedingten GET-Anforderungen zu reduzieren. Der Antworttext sollte leer sein. Überschriften sollten Datum, Ort usw. haben.

5

400

BAD REQUEST- gibt an, dass eine ungültige Eingabe bereitgestellt wurde. Zum Beispiel Validierungsfehler, fehlende Daten.

6

401

UNAUTHORIZED - gibt an, dass der Benutzer ein ungültiges oder falsches Authentifizierungstoken verwendet.

7

403

FORBIDDEN- gibt an, dass der Benutzer keinen Zugriff auf die verwendete Methode hat. Beispiel: Zugriff ohne Administratorrechte löschen.

8

404

NOT FOUND - gibt an, dass die Methode nicht verfügbar ist.

9

409

CONFLICT- Gibt die Konfliktsituation während der Ausführung der Methode an. Beispiel: Hinzufügen eines doppelten Eintrags.

10

500

INTERNAL SERVER ERROR - gibt an, dass der Server während der Ausführung der Methode eine Ausnahme ausgelöst hat.