tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
373
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hookah Hookah ist offline Mitglied Gold
    Registriert seit
    Feb 2007
    Beiträge
    117
    Guten Morgen,

    Ich möchte einen kleinen Chat Service anbieten.
    Dazu haben ich einen NodeJs Server geschrieben
    welcher die Nachrichten an die richtigen Personen weiterleitet.

    Der Webseitenbetreiber hat die Möglichkeit 'Channel' anzulegen.
    Auf der Webseite muss ein Javascript eingebunden werden
    das ein Objekt bereitstellt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
     
    function myChat()
    {
        var host = window.location.host; 
        var devId = null; 
     
        ...
     
        this.init = function(did)
        {
            if(!devId)
                devId = did;
        };
     
        this.sendMessage = function(channelName,msg)
        {
            send(channelName,msg,host,devId);
        };
     
    }

    Jetz prüfe ich auf der Serverseite ob der bei send() angegebene Channel
    auch dem Webseitenbetreiber mit User ID devId gehört und ob
    die beim Channel erstellen angegebene Webseiten URL
    gleich dem Host window.location.host ist.

    (myChat.init() soll bei window.onload ausgeführt werden.)

    Ist das der Fall geht die Message durch und wird an alle Clients im selben
    Channel verschickt.

    Damit möchte ich unterbinden das man sich von fremden Seiten
    in den Chat einklinken und mitlesen kann.

    Jetzt frage ich mich ob das so überhaupt sicher ist.

    Ich habe mal aufgegriffen, dass Variablen in einem Objekt, wenn sie das Muster var x = x;
    haben, nicht von ausserhalb des Objektes geändert werden können.

    Stimmt das ?

    Man kann ja auch eigene Script per Adresszeile ausführen und
    ich bin mir da nicht sicher ob das eine gute Lösung für mein Problem ist.

    Gibt es eine andere/bessere/sichere Lösung?
    Gibt es überhaupt eine sichere Lösung?

    Ich habe die Befürchtung das man die variablen host und devId
    so ändern kann das man auch von fremden Seiten aus
    schreiben und lesen kann.

    Warum eine Passwortabfrage nicht möglich ist, ist denk ich klar -
    man könnte das Passwort aus dem Javascript entnehmen.


    Ich danke schonmal im Vorraus für Vor- und Ratschläge
    und wünsche einen guten Morgen.
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Ohne serverseitigen Code seitens der Betreiber der anderen Webseiten wird das nicht funktionieren. Diese müssten einen geheimen Schlüssel haben, um damit das Skript zu signieren. Wie genau das dann laufen würde, müsste man prüfen.

    Hier ein proof of concept, um deinen jetzigen Mechanismus auszuhebeln:

    Code javascript:
    1
    2
    3
    4
    5
    
    Object.prototype.__defineGetter__.call(window.location, 'host', function() {
        return 'www.google.de';
    });
     
    console.log(window.location.host);
    Geändert von CPoly (27.01.12 um 15:09 Uhr)
     

  3. #3
    mOnis mOnis ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    44
    Wenn du ein kleinen Chat einbinden willst, würde ich das über XMPP realisieren.

    Weither geholt ist das so ähnlich wie IRC. Wenn du ein Server hast, kannst du so ein XMPP Server installieren und privatisieren und auch Online nutzen.

    Als Server empfehle ich dir den XMPP eJabberd Server. Ich habe eJabberd privat auf einer Linux-Maschine laufen.

    Der Chat von Facebook ist mit einen XMPP-Server realisiert.

    Mit private meine ich den XMPP Server, damit keiner in meine ChatLobby kann und nicht das ich es lokal laufen habe.
    Geändert von mOnis (02.02.12 um 17:35 Uhr)
     
    "Programmieren ist wie küssen;
    Man kann darüber reden, man kann es beschreiben,
    aber man weiß erst, was es bedeutet,
    wenn man es getan hat."

Ähnliche Themen

  1. Benutzer und Passwort abfrage
    Von ryserstephan im Forum PHP
    Antworten: 6
    Letzter Beitrag: 22.10.07, 15:39
  2. JAAS Benutzer mehrmals Authentifizieren
    Von jpatwork im Forum Java
    Antworten: 1
    Letzter Beitrag: 24.08.07, 19:12
  3. Benutzer root auf mysql mit Passwort?
    Von server im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 31.12.05, 14:01
  4. XP Benutzer Passwort herausfinden
    Von Home hacker im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 01.06.05, 19:59
  5. Benutzer und Passwort
    Von InTocNiCo im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.05.04, 16:31