SID: Unterschied zwischen den Versionen

Aus WKwiki
Zur Navigation springen Zur Suche springen
("für Programmierer")
K (formatierungsfehler in code-beispiel korrigiert)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 26: Zeile 26:
==Für Programmierer==
==Für Programmierer==


Um beispielsweise mit externen Tools etwas in den Chat zu senden, aus dem Admin-Menü abzufragen, etc. benötigt man die SID. In PHP lässt sich diese aus dem Passwort mit der Funktion crypt($password, "88"); berechnen. Allerdings müssen anschließend Sonderzeichen wie / und \ entfernt werden, da diese vom Webkicks-System ebenfalls entfernt werden um gültige URLs generieren zu können. Dagegen erlaubt sind in der SID Punkte und Dollar-Zeichen. Relevant für die Berechnung mit der crypt-Funktion sind nur die ersten 8 Zeichen eines Strings. Alle weiteren Zeichen werden ignoriert. So erhält man mit dem Passwort Webkicks (8 Zeichen) die gleiche SID wie mit Webkicks123 (123 wird ignoriert da nach dem 8. Zeichen).
Um beispielsweise mit externen Tools etwas in den Chat zu senden, aus dem Admin-Menü abzufragen, etc. benötigt man die SID. Um den Benutzern des Programms zu ersparen, die SID selbst heraussuchen zu müssen ist es sinnvoll diese aus dem Klartext-Passwort automatisch generieren zu lassen. Hierzu verschlüsselt man das Passwort mit dem "Standard DES" Algorithmus (siehe Beispiele unten). Allerdings müssen anschließend Sonderzeichen wie / und \ entfernt werden, da diese vom Webkicks-System ebenfalls entfernt werden um gültige URLs generieren zu können. Dagegen erlaubt sind in der SID Punkte und Dollar-Zeichen. Relevant für diese Verschlüsselungsart sind nur die ersten 8 Zeichen eines Strings. Alle weiteren Zeichen werden ignoriert. So erhält man mit dem Passwort Webkicks (8 Zeichen) die gleiche SID wie mit Webkicks123 (123 wird ignoriert da nach dem 8. Zeichen).
 
===Programmier-Beispiele===
 
In PHP und Perl lässt sich diese aus dem Passwort mit der Funktion crypt berechnen. Samt Entfernen der Slashes könnte ein SID-Rechner in PHP z.B. so aussehen:
 
{{quote|code|<nowiki>$sid = ereg_replace("[^a-zA-Z0-9.$]", "", crypt($password,"88"));</nowiki>}}


[[Kategorie:Technisches (Chat)]]
[[Kategorie:Technisches (Chat)]]

Aktuelle Version vom 26. März 2009, 12:55 Uhr

Was ist die SID?

Der Name „SID” (normalerweise Abk. für "Session ID") wurde übernommen weil es umgangssprachlich aufgrund des Wk-Bots fälschlicherweise so genannt wurde. Sie ist in Wirklichkeit in WK-Chats die verschlüsselte Variante des eigenen Passworts. Sie beginnt hier immer mit „88”, gefolgt von scheinbar sinnlosen Zahlen-, Buchstaben- und Sonderzeichenkombinationen.

Wie finde ich die SID?

Man muss die SID beispielsweise in einem Menü des Wk-Bot eingeben, damit er funktioniert. Die SID befindet sich an vielen Stellen, zumeist URLs, z.B. des Eingabeframes:
http://serverX.webkicks.de/CHATNAME/index2/nick/88ABC123.D.4/start/main
Auch der URL der Message-Box beinhaltet die SID:
http://serverX.webkicks.de/CHATNAME/gate/nick/88ABC123.D.4/pmframe

Klicke mit rechts auf den Link und wähle „Eigenschaften” um an diese URL zu kommen. Dann kannst du die SID entweder herauskopieren oder musst sie abschreiben. Alternativ kannst du dein Passwort auch, z.B. mit dem SID-Rechner auf wktools.net in die SID umrechnen lassen.

Wozu ist sie gut?

Um sicherzustellen, dass sich hinter der Tastatur auch der richtige User befindet muss man beim Betreten des Chats sein Passwort eingeben. Zur Sicherheit wird diese Überprüfung nicht nur einmalig beim Login gemacht, sondern bei jeder Aktion, sei es das Lesen der privaten Nachrichten, das Absenden eines Textes in den Chat oder das Abrufen des Textes der anderen aus dem Chat, sowie auch sämtliche Aktionen im Admin-Menü. Darum muss man sich auch erneut einloggen wenn man sein Passwort geändert hat. Die SID stimmt dann nämlich nicht mehr und es kommt die Fehlermeldung „Falsches Passwort”.

Sicherheit

Manche sind vielleicht der Ansicht, dass man die SID einfach weitergeben könne, da es ja nur das verschlüsselte Passwort ist, und man damit nichts anfangen kann. Das ist leider nicht so, denn wer die SID eines Users kennt hat nahezu vollen Zugriff auf diesen Nickname im Chat. Er kann sich zwar nicht damit einloggen, doch über ein paar kleine Umwege hat er auf alle Menüs unbemerkt Zugriff.
Aus diesem Grund ist die SID genauso geheim zu halten wie das Passwort. Beispielsweise verlinken manche die Liste aller Chatter aus dem Admin-Menü. Wer sich ein kleinwenig auskennt liest daraus die SID aus und hat vollen Zugriff auf das ganze Admin-Menü. Darum sollte man keine Seite aus dem Chat verlinken, von der man nicht sicher weiß, ob sie die SID enthält. Unbedenklich ist z.B. die Smilie-Liste oder die Hilfe-Seite.
Genauso darf man natürlich auf keinen Fall die SID an jemanden verraten, der im Chat danach fragt. Sollte sich so jemand als Webkicks-Team-Mitglied ausgeben und bspw. mit Sperrung des Chats drohen wenn ihr es nicht verratet könnt ihr ihn getrost kicken, denn danach würde nie jemand seriöses fragen.

Für Programmierer

Um beispielsweise mit externen Tools etwas in den Chat zu senden, aus dem Admin-Menü abzufragen, etc. benötigt man die SID. Um den Benutzern des Programms zu ersparen, die SID selbst heraussuchen zu müssen ist es sinnvoll diese aus dem Klartext-Passwort automatisch generieren zu lassen. Hierzu verschlüsselt man das Passwort mit dem "Standard DES" Algorithmus (siehe Beispiele unten). Allerdings müssen anschließend Sonderzeichen wie / und \ entfernt werden, da diese vom Webkicks-System ebenfalls entfernt werden um gültige URLs generieren zu können. Dagegen erlaubt sind in der SID Punkte und Dollar-Zeichen. Relevant für diese Verschlüsselungsart sind nur die ersten 8 Zeichen eines Strings. Alle weiteren Zeichen werden ignoriert. So erhält man mit dem Passwort Webkicks (8 Zeichen) die gleiche SID wie mit Webkicks123 (123 wird ignoriert da nach dem 8. Zeichen).

Programmier-Beispiele

In PHP und Perl lässt sich diese aus dem Passwort mit der Funktion crypt berechnen. Samt Entfernen der Slashes könnte ein SID-Rechner in PHP z.B. so aussehen:

code:
$sid = ereg_replace("[^a-zA-Z0-9.$]", "", crypt($password,"88"));