2017-07-13 2 views
0

Ich verwende die EWS Java Api, um hier bei der Arbeit eine Verbindung zum Exchange-Server herzustellen. Ich verbinde mich gut, aber ich habe ein Problem w/wie ich mit dem Server verbinden.EWS WebCredentials

public WebCredentials(String userName, String password, String domain) { ... } 
public WebCredentials(String userName, String password) { ... } 

Dies sind die einzigen beiden Konstruktoren für die Anmeldung am Server. Beide verwenden Strings für das Passwortfeld. Auf der Ebene der Sicherheit wird jeder, der versucht, die Anwendung zu hacken, das Passwort im Klartext sehen, nicht? Da Strings nicht sofort vom GC erfasst werden, gibt es keine Möglichkeit, das Passwort in diesen Fällen zu verschleiern, oder? Das Passwort wird nicht im Klartext in meinem Code gespeichert, aber an dem Punkt, an dem ich ein webcredential-Objekt erstelle, ist das Passwort dort klar als Tag, nein?

+0

Sie möchten also wissen, ob jemand Ihre Anmeldeinformationen beim Erstellen sehen/abfangen kann oder nicht? – MaxW

+0

Ja ... bleibt die Zeichenfolge, die ich an den Konstruktor übergebe, im Speicher sichtbar? –

+0

Ich weiß es nicht wirklich, aber wenn ich es richtig gesehen habe, denke ich, dass sich das Passwort in einen 'SecureString' verwandelt, aber wie gesagt, denke ich. – MaxW

Antwort

0

Authentication and EWS in Exchange

Standardauthentifizierung Nachteile:

  • Erfordert Ihre Anwendung zu sammeln und zu speichern, die Anmeldeinformationen des Benutzers.
  • Sie müssen die NTLM-Authentifizierung deaktivieren, damit alle Benutzer die Standardauthentifizierung verwenden können.
  • Wenn eine Sicherheitsverletzung in Ihrer Anwendung auftritt, kann sie dem Angreifer die E-Mail-Adresse und das Kennwort des Benutzers offen legen.

Sie könnten also eine andere Authentifizierungsmethode für bessere Sicherheit verwenden.