2017-02-12 3 views
-1

Angenommen, ich führe eine Anwendung auf WebSphere Application Server aus und in einer Java-Klasse führt sie einen REST-Aufruf durch Bereitstellen eines Client- und Clientgeheimnisses zum Empfangen eines Aktualisierungstokens für OAuth2 und später auch zu einem späteren Zeitpunkt durch ein REST-Aufruf an, indem das Aktualisierungstoken zum Empfang eines Zugriffstokens bereitgestellt wird.Sind REST-Aufrufe von WebSphere Application Server an einen anderen Server sichtbar?

Der Quellcode ist offensichtlich nicht sichtbar zu debuggen durch und überprüfen Sie diese Werte, aber meine Frage ist, dass die Werte in diesen REST-Aufrufe (nämlich das Client-Geheimnis und Aktualisierungstoken) und die Antwort (Zugriff Token) von jemandem gesehen werden, der Zugriff auf den Rechner hat, auf dem der Server läuft? Der Grund, warum ich frage, ist, dass ich daran denke, diese unveränderlichen Werte (Client-ID, Client-Geheimnis, Aktualisierungstoken) irgendwo zu speichern, wo sie nur durch eine JDBC-Verbindung im Java-Code angezeigt werden können um diese Werte für Authentifizierungszwecke mit irgendeinem Server irgendwo zu verwenden. Ich möchte nicht, dass die Person, von der diese Anwendung verwendet wird, diese Werte anzeigen kann, denn wenn sie dies können, können sie durch den Zugriff auf andere öffentliche APIs auf dem Server Schaden anrichten.

Ich beabsichtige, nur den Java-Code (Backend) mit dem Server für die Authentifizierung interagieren und greifen einige Ressourcen, aber ich möchte nicht die Person, die Zugriff auf diese Maschine (hat aber keinen Zugriff auf diese) Werte werden gespeichert), um die Details der REST-Anforderung und -Antwort anzuzeigen.

Vielen Dank.

+0

** Können die übergebenen Werte von jemandem gesehen werden, der Zugriff auf den Computer hat, auf dem der Server läuft? ** Korrigiere mich, wenn ich falsch liege, aber fragst du, ob die Daten an einen Server gesendet werden können Zugriff von jemandem, der Zugriff auf diesen Server hat? Denken Sie eine Sekunde lang darüber nach ... –

+0

Ich denke, Sie haben Ihrer Frage eine Menge zusätzlichen Fluff (Websphere, REST usw.) hinzugefügt, die irrelevant ist. Lies meinen obigen Kommentar und du hast deine Antwort. –

+0

@ChristopherSchneider Ich meine aber wie ist das möglich? Wie zum Beispiel, dass der Java-Code einige hartcodierte Werte hat (und die Quelle nicht sichtbar ist) und ein REST-Aufruf im Java-Code unter Verwendung dieser Werte erfolgt. Wie kann jemand, der Zugriff auf den Computer hat, die Anfrage und die Antwort anzeigen? – HikeTakerByRequest

Antwort

1

Es ist unklar, auf welchen Server Sie an verschiedenen Orten verweisen.

Wenn Sie eine ausgehende HTTPS-Anforderung von einem WebSphere-Server an einen zweiten Server senden, müssen Sie davon ausgehen, dass alle Details der Anfrage und Antwort für die Bediener der Software unter beide-Seiten sichtbar sind.

Jede Seite kann ihren eigenen Ein- und Ausgang verfolgen.

+0

Können Sie erklären, WIE die Seite, die die Anfrage stellt, die Anfrage und die Antwort verfolgen kann, wenn eine HTTPS-Anfrage (z. B. ein REST-Anruf) gemacht wird? – HikeTakerByRequest

+0

Die genaue Mechanik und Optionen hängen von vielen Dingen ab. Zweifeln Sie daran, dass wenn Sie einen gemeinsamen HTTP-Client verwenden, selbst über HTTPS, jemand, der das System kontrolliert, nicht dazu in der Lage ist, Daten ein-/auszutragen? Oder die Backend-Seite könnte dafür sorgen, dass Sie keine HTTPS-Chiffre verwenden, die Forward Secrecy bietet und Ihre Daten außerhalb des Stacks erfasst/entschlüsselt. Oder sie könnten die Server- oder Client-SW veranlassen, Ihre ephemeren DH-Schlüssel persistent zu machen und dann die Sitzung zu dekodieren. Net, müssen Sie letztlich beide Seiten mit Ihren Geheimnissen vertrauen. – covener

Verwandte Themen