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:
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.
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:
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.