Christian Seiler: Browser: Peer-To-Peer

Beitrag lesen

Hallo,

Ich weiß, mit Boardmitteln ist das nicht machbar, aber gibt es keine Möglichkeit mittels Flash, Silverlight (Neues Microsoft-Pendant zu Flash) oder einem Crossbrowser-PlugIn, einfache Textdaten zwischen zwei Browsern auszutauschen?

So ohne weiteres nicht. Du hast 2 Probleme:

1. Sicherheitsmechanismen: Im Browser ausgeführte Scripte etc. (auch Flash!) dürfen nur auf den Server, von dem sie auch geladen wurden, zugreifen - wenn man von potentiellen Lücken in den Mechanismen mal absieht. Stell Dir mal vor, ein Flash auf Deinem Rechner könnte Verbindungen zu beliebigen Rechnern aufbauen - dann könnte jemand bösartiges von Deiner IP-Adresse aus Spam versenden, andere Rechner angreifen oder ähnliches - und das im Idealfall, ohne eine wirkliche Spur zu hinterlassen. Sehr schlecht.

2. NAT. *Sehr* viele Rechner sitzen heutzutage hinter Routern. Das heißt: Wenn Du die öffentlich sichtbare IP des anderen Rechners kontaktieren willst, kontaktierst Du im Endeffekt nur den Router des anderen - nicht den Rechner selbst. Wenn also beide hinter NAT sitzen (und das ist sehr wahrscheinlich heutzutage), hast Du ein großes Problem. Software wie Skype verwendet relativ fortgeschrittene Techniken wie UDP hole punching, um das irgendwie trickreich zu umgehen - und selbst das klappt nicht immer, manchmal werden auch Skype-Telefonate über deren Server abgewickelt.

Du hättest eine Chance wenn Du Dich in einem Intranet bewegst, wo a) NAT keine Rolle spielt und Du b) dafür sorgen kannst, dass für zumindest Deine Intranet-Seite andere Sicherheitsbedingungen im Browser gelten. Java zum Beispiel kennt signierte Applets, die (wenn man der Signatur vertraut, was im Intranet möglich ist) viel mehr dürfen, als normale Applets - z.B. auch auf lokale Dateien zugreifen o.ä. - und eben auch Verbindungen zu beliebigen IPs aufbauen können. Vielleicht kennt Flash oder Silverlight sowas ähnliches.

Im Internet dagegen wirst Du Flash-/Silverlight-/Java-basiertes P2P im Prinzip vollkommen vergessen können - zwar kann man signierte Java-Applets auch im Internet verwenden (wenn die Leute das akzeptieren, was zumindest bei einem geschlossenen Nutzerkreis denkbar wäre), dafür hast Du aber weiterhin das NAT-Problem. Und verzeih mir, aber irgendwie traue ich Dir bei Deinem aktuellen Wissensstand nicht zu, NAT-Traversal-Techniken wie UDP Hole Punching o.ä. korrekt zu implementieren.

Viele Grüße,
Christian