Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

AW: DataSnap: IP vom Webserver

  Alt 13. Sep 2016, 15:40
Die Kommunikation läuft vermutlich eher so:

Client --> "Gib mir mal die index.html" --> Webserver
Webserver --> "Hier haste das Zeug" --> Client
Client (wertet index.html aus) --> "Ah, ich brauch noch diese Images, dieses CSS und das Javascript da" --> Webserver
Webserver --> "Hier haste das Zeug" --> Client
Angular-App im Client/Browser --> "Ich brauch Daten" --> Direkt an REST-Server

Sonst würde der Rest-Server ja auch nicht die IP des Client bekommen.

Im Prinzip kann jeder, der die Adresse des REST-Servers kennt, Anfragen da hin schicken. Das kann die Angular-App im Client/Browser sein, aber das kann auch ein Angreifer sein, der die App mal angesehen hat.

Und selbst wenn du die Requests gegen Deine API durch eine Middleware auf dem Webserver durchschleusen würdest, (dann würde der Datasnap-Server die IP des Webservers zeigen) dann könnte trotzdem jeder beliebige Angreifer die API-Endpunkte auf diesem Webserver anrufen und würde mit der IP des Webservers auf Deiner API ankommen.

Für die Absicherung von Webservices ("Zugangskontrolle"), so dass nur erlaubte Clients darauf zugreifen können, gibt es in der zwischenzeit gute und sichere Protokolle, z.B. OAuth (bzw. besser OAuth 2).

Dabei holt sich der Client (also Deine Angular-App) ein Token vom einem Security Token Server (STS). Der STS stellt sicher, dass nur valide Clients das Token bekommen. Zum Beispiel muss der Client zum einen als Referrer direkt von Deiner Webseite kommen, ein spezielles Secret vorweisen und er wird auch nur dorthin mit dem Token zurückgeschickt.

Dieses Token schickt er dann bei Requests gegen Deine API mit (z.B. im Authorization Header als Bearer Token) und deine API validiert das Token (wurde es mit dem richtigen Key vom STS signiert?) und nur wenn das der Fall ist sollte Deine API den Request beantworten.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat