Sonderzeichen im User-Namen..

 
Boogie
Benutzer
Avatar
Geschlecht:
Alter: 65
Beiträge: 84
Dabei seit: 04 / 2006
Betreff:

Sonderzeichen im User-Namen..

 · 
Gepostet: 21.05.2017 - 15:41 Uhr  ·  #1
In Beiträgen, kann ich ja das ® schreiben,
aber wenn ich als Username: Boogie® schreibe,
wird es im Forum als 'Boogie - registered:' dargestellt...
( der - ist anstatt des : , weil sonst wird es im Beitrag korrekt dargestellt..


Bei Typ von Benutzernamen hab ich keine Limitierung angegeben..
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
romfis
Benutzer
Avatar
Geschlecht:
Herkunft: 🌍 🇪🇺 🇦🇹 Österreich, Wien
Alter: 38
Homepage: romfis.link/
Beiträge: 569
Dabei seit: 12 / 2005
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 00:17 Uhr  ·  #2
Zitat geschrieben von Boogie

In Beiträgen, kann ich ja das ® schreiben,
aber wenn ich als Username: Boogie® schreibe,
wird es im Forum als 'Boogie - registered:' dargestellt...
( der - ist anstatt des : , weil sonst wird es im Beitrag korrekt dargestellt..


Bei Typ von Benutzernamen hab ich keine Limitierung angegeben..


Im Usernamen wird es auch nie funktionieren. Glaub das ist Absicht so aus Sicherheitsgründen, wenn ich mich nicht irre bezüglich Sonderzeichen im Username.
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 38
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 13:13 Uhr  ·  #3
Hallo zusammen!

Romfis hat fast ins schwarze getroffen, es gibt tatsächlich ein paar Sonderzeichen, die auch bei "keine Limitierung" aus dem Usernamen gefiltert werden. Beim (C) und (R) kommt hier jedoch gerade noch etwas anderes dazu, was man theoretisch beheben könnte.


Aber ich muss dafür zunächst ein bisschen ausholen, dann wird es verständlicher:
Warum das :registered: bei Dir auftaucht liegt daran, dass die EmojiOne Library, die normalerweise für die Interpretierung von Emojis zuständig ist, tatsächlich auch auf das (C) und (R) Zeichen reagiert, was in diesem speziellen Fall nicht unbedingt nötig ist, weil (C) und (R) kann im Grunde jedes System ohne Probleme darstellen. Bei allen anderen Zeichen dieser Art ist es jedoch zwingend notwendig, dass selbst dann, wenn man Emojis nicht als Grafik interpretieren lässt (das passiert überall, wo es auch Smilies geben kann) man zumindest einen Shortcode daraus macht. Dies stellt dann z.B. auch in Profilfeldern manchmal etwas als :shortcode: dar, wenn es dort eben keine Emoji Grafiken gibt.

Theoretisch könnte man den Parser zwar überall wirken lassen, aber es ist denke ich nervig, wenn User im Forum überall Grafiken "unterbringen" könnten und der Sicherheit und Performance ist das auch nicht dienlich (die Grafiken müsste er ja dann auch überall übertragen während man sie ggf. in Postings abschalten kann wenn man das möchte). Beim CF3 wurden solche Emoji Zeichen früher übrigens rigoros einfach aus dem String rausgekickt. Ansonsten würde das passieren, was man bei anderen älteren Systemen oft hat, dass Leute, die ein Emoji posten wollen einen DB Error verursachen. Beim CF4 hingegen neu wird halt nicht einfach rausgekegelt, sondern ein verständlicher Shortcode draus gemacht (z.B. :thumbsup: für den Daumen-Hoch Emoji) und überall dort, wo Smiliegrafiken funktionieren würde dann, wenn man Emoji Support im ACP eingeschaltet hat aus dem :thumbsup: (in diesem Beispiel) die entsprechende Grafik werden, die dann vom System umgewandelt wird.

Also das schon mal zum Grund, warum die Eingaben generell in Shortcodes gewandelt werden auch dort, wo keine Smiliegrafiken sind. Liegt auch einfach daran, dass das CF4 da ein bisschen strikter ist in manchen Dingen. Es ist auch generell bei so Sachen wie Username nicht gut solche Exotenzeichen unverarbeitet zu benutzen, da sie auch manchmal je nach Betriebssystem anders genutzt oder dargestellt werden (oder nicht mal verfügbar sind). Man kennt das ja z.B. wenn man einem älteren Android oder iOS ein paar der neuen Emojis schickt und die Leute vom anderen Ende sehen nur ein Kästchen. Aber auch mit aktuellen Versionen von Android und iOS oder zwischen Mac und Windows kann es immer mal wieder passieren, dass unverarbeitete Emoji Chars auf dem einen System dargestellt werden, auf dem anderen nicht. (Deshalb macht das CF4 da auch dann eigene Grafiken draus über EmojiOne statt sich darauf zu verlassen, dass das Betriebssystem da einfach seine eigene Grafik einsetzt. Basis dafür ist dann der Shortcode der aus dem Emoji-Zeichen gemacht wird).

Also das mal zum technischen Hintergrund und dem Sicherheitsaspekt.


Jetzt aber zum (C) und (R) Problem:
(C) und (R) kann normalerweise jedes Betriebssystem darstellen, doch EmojiOne funkt hier auch rein wie ich gesehen habe. Ich werde beim kommenden CF4 Update dies auch selbst aus EmojiOne rauswerfen, weil ich das ein bisschen übertrieben / irritierend finde bei diesen Zeichen. Aber wichtig: Die anderen Shortcodes bleiben auf jeden Fall drin, das hat nämlich auch Sicherheitstechnische aspekte!

Du könntest das jetzt selbst schon wiefolgt bei Dir anpassen:

ÖFFNE
die shared/emojione/php/src/Ruleset.php
mit einem Codeeditor


FINDE DORT (Zeile 2529 & 2530)
Code
        ':copyright:' => "\xC2\xA9\xEF\xB8\x8F",
        ':registered:' => "\xC2\xAE\xEF\xB8\x8F",


ERSEZTE DAS MIT:
Code
        //':copyright:' => "\xC2\xA9\xEF\xB8\x8F",
        //':registered:' => "\xC2\xAE\xEF\xB8\x8F",


(also praktisch die zwei Zeilen mit // auskommentieren)


Jetzt wird (C) und (R) nicht mehr von EmojiOne angepackt und Du kannst im Adminbereich Deinen Nutzernamen ändern.

WICHTIG: Nach dieser Änderung musst Du Dich zunächst mit "Boogie :registered:" einloggen, weil aus dem (R) kein :registered: mehr gewandelt wird!! So müsstest Du auch im ACP Deinen Nutzernamen wiederfinden bzw. einfach über die Suchmaske nach "Boogie" suchen und den dann wählen und dann den Nickname ändern in den mit (R) Zeichen, welches nach der Änderung dann genau so im Namen stehen bleibt.



GROSSES UND WICHTIGES ABER AM ENDE:
Wie romfis schon korrekt sagte hat die Tatsache, Sonderzeichen in Nutzernamen zuzulassen oder eben nicht auch sicherheitsrelevante Dinge. Auch wenn beim CF4 da im Grunde alles klappt was er zulässt hat es u.U. für den User einige Nachteile:


  • manche Betriebssysteme senden gewisse Zeichen gerade im Unicode-Sonderbereich immer noch anders oder gar nicht, entsprechend können diejenigen sich u.U. auf anderen Systemen nicht mehr einloggen
  • E-Mail Programme versagen meistens noch bei zu gravierendem Unicode (obwohl das CF4 zunächst UTF8 Mails verschickt, aber viele Server und Mailprogramme handeln das immer noch nicht vollständig) - Hinweise vom Board die den Nickname enthalten werden u.U. nicht mehr korrekt dargestellt
  • Es gibt u.U. je nach Betriebssystem Darstellungsfehler in Nutzernamen, wenn z.B. ein älteres System gewisse Zeichen nicht richtig interpretieren kann
  • Falls Du doch mal auf einer älteren DB Version läufst kann es zu Problemen geben
  • Manche externe DB Backup Tools kommen mit den Zeichen nicht klar und würden sie falsch wieder einspielen, was dazu führt, dass gewisse Nutzernamen nicht mehr verfügbar sind, sollte man sein Forum mal von einem Backup einspielen müssen oder umziehen.


Nutzernamen sollten daher eher einem einfacheren Zeichenschema folgen.

Du hast mich jetzt da auch im ACP eigentlich auf einen kleinen Engpass gestoßen, ich werde in der nächsten CF4 Version da für den Punkt "keine Limitierung" auf jeden Fall noch ein "(nicht empfohlen)" im Langstring hinzufügen (also "keine Limitierung (nicht empfohlen)", da ich finde, dass man das komplette Zulassen vom gesamten UTF8 Zeichenraum (auch wenn das Board ansich damit klar käme) wirklich nur mit äußerster Vorsicht einsetzen sollte und nur dann, wenn man sich allen Risiken bewusst ist.


Also auch wenn Du für Deine Frage oben mit der Codeänderung eine Lösung bekämst würde ich Dir empfehlen in Nutzernamen auf sowas zu verzichten.


So das war jetzt etwas länger geworden wegen der Hintergrunde aber danke auch nochmal an romfis für die Ersthilfe an Boogie, hat ja auch bei der eigentlichen Ursache genau ins Schwarze getroffen.

LG,
Chris
Boogie
Benutzer
Avatar
Geschlecht:
Alter: 65
Beiträge: 84
Dabei seit: 04 / 2006
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 14:50 Uhr  ·  #4
Zitat geschrieben von romfis

Im Usernamen wird es auch nie funktionieren. Glaub das ist Absicht so aus Sicherheitsgründen, wenn ich mich nicht irre bezüglich Sonderzeichen im Username.

Danke für deine Hilfe... :-)
Auch wenn es nicht DAS war, was ich lesen wollte :D


Zitat geschrieben von cback

ÖFFNE
die shared/emojione/php/src/Ruleset.php
mit einem Codeeditor


FINDE DORT (Zeile 2529 & 2530)
Code
        ':copyright:' => "\xC2\xA9\xEF\xB8\x8F",
        ':registered:' => "\xC2\xAE\xEF\xB8\x8F",


ERSEZTE DAS MIT:
Code
        //':copyright:' => "\xC2\xA9\xEF\xB8\x8F",
        //':registered:' => "\xC2\xAE\xEF\xB8\x8F",


(also praktisch die zwei Zeilen mit // auskommentieren)


Jetzt wird (C) und (R) nicht mehr von EmojiOne angepackt und Du kannst im Adminbereich Deinen Nutzernamen ändern.

Ich habs mal wieder geändert...auf ohne ®..
Auch wenn ich mich dadurch nackt fühle :D

Und wenn es der Sicherheit dienlich ist, soll es mir auch recht sein... :-)

Zitat geschrieben von cback

Du hast mich jetzt da auch im ACP eigentlich auf einen kleinen Engpass gestoßen, ich werde in der nächsten CF4 Version da für den Punkt "keine Limitierung" auf jeden Fall noch ein "(nicht empfohlen)" im Langstring hinzufügen (also "keine Limitierung (nicht empfohlen)", da ich finde, dass man das komplette Zulassen vom gesamten UTF8 Zeichenraum (auch wenn das Board ansich damit klar käme) wirklich nur mit äußerster Vorsicht einsetzen sollte und nur dann, wenn man sich allen Risiken bewusst ist.

Na, dann war mein Betrag doch nicht ganz umsonst.... ;-)

Ich bin ja momentan in der Testphase...und da isses wie bei meinem Hund..
Da weis ich auch nicht immer wer die Oberhand hat *gg
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 38
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 15:22 Uhr  ·  #5
Hi Boogie,

also bei dem (C) und (R) sehe ich jetzt wirklich noch keine Probleme, das könntest Du also schon noch machen. Insbesondere, weil es dann auch bei anderen Feldern nicht mehr ersetzt wird und da kannst Du Dich ja ungefährlich austoben.

Aber ich sage mal falls es so weit geht, dass Du die Nutzer dazu animierst irgendwann mit so UTF8 Scherzen anzufangen wie Name auf den Kopf stellen und sowas ... das Forum schluckt es zwar noch, aber um das rundherum mache ich mir dann ein bisschen Sorgen. *lach* :)

Übrigens sehr schöner Vergleich mit dem Hund, das passt gut. 🐕
So fühle ich mich beim Entwickeln auch oft. :D

LG,
Chris
Boogie
Benutzer
Avatar
Geschlecht:
Alter: 65
Beiträge: 84
Dabei seit: 04 / 2006
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 15:48 Uhr  ·  #6
Hallo Chris,

Zitat geschrieben von cback

also bei dem (C) und (R) sehe ich jetzt wirklich noch keine Probleme, das könntest Du also schon noch machen. Insbesondere, weil es dann auch bei anderen Feldern nicht mehr ersetzt wird und da kannst Du Dich ja ungefährlich austoben.

Okay, überredet :D
Danke nochmals..

Und nein, ich werd da sich niemand dazu animieren.. :-)
Ausserdem ein grossteil der Leute dich ich kenne, sind froh die normalen Buchstaben auf der Tastatur zu finden,
geschweige den irgendwelche Sonderzeichen.. *gg
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 38
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: Sonderzeichen im User-Namen..

 · 
Gepostet: 22.05.2017 - 17:16 Uhr  ·  #7
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.