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