AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke DataSnap: IP vom Webserver
Thema durchsuchen
Ansicht
Themen-Optionen

DataSnap: IP vom Webserver

Offene Frage von "Darlo"
Ein Thema von Darlo · begonnen am 13. Sep 2016 · letzter Beitrag vom 13. Sep 2016
Antwort Antwort
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

DataSnap: IP vom Webserver

  Alt 13. Sep 2016, 14:16
Hallo zusammen,

ich habe folgendes Problem: Für eine Zugangskontrolle auf einen Rest-Server (DataSnap) brauche ich die IP der Webserver über den der Rest-Service aufgerufen wird. Die Anfrage erfolgt über eine Webseite mit AngularJS.

Also
Client -> Webserver -> Rest-Server

Jetzt bekomme ich mit folgenden Code die IP-Adresse des Clients zurück, und nicht die des Webservers.

Delphi-Quellcode:
procedure TWebModule1.WebModuleBeforeDispatch(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  showmessage(Request.RemoteAddr);
end;
Wie kann ich die IP des Webservers bekommen?
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

AW: DataSnap: IP vom Webserver

  Alt 13. Sep 2016, 14: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
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: DataSnap: IP vom Webserver

  Alt 13. Sep 2016, 14:52
Hi,

danke für Deine Ausführung! Ja, da das javascript im Browser des Clients ausgeführt bekomme ich die Client IP. Hatte gehofft dass DataSnap hier eine einfache Lösung bietet. Ok, dann werde ich mich mal einlesen.

Danke
Philip
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz