Usereingaben im WYSIWYG - Editor absichern?

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

hab nochmal eine grundsätzliche Frage bei der ich grad nicht weiterkomme. Denn ich möchte Usereingaben, wie Forumsbeitrag, Kommentar, etc. zulassen und den User das Ding auch optisch editieren lassen mit Fettschrift, etc.. Soweit ist das ja nix neues...

Aber in welcher Form kann ich bei solchen Eingaben am besten die Verbindung aus Sicherheit und einfacher Eingabe schaffen?
Denn im Backend ist das ja kein Problem. Einfach nen WYSIWYG - Editor für HTML nehmen und gut.
Im Frontend dürfte das ja aber zu Problemen führen, da hier ja mittels html - Eingabe - Modus alles ohne Probleme manipuliert werden kann.

Zusätzlich würde ich natürlich gern noch paar "Grenzen" festlegen können, was überhaupt machbar ist:

Kommentar = Nur Fett, Kursiv, Unterstrichen, Links, Smilies
Forumseingabe beispielsweise = siehe Kommentar + Aufzählungnen, Schriftgröße, Style, Schriftfarbe, Code...
Also eigentlich eben nix anderes, wie es ja hier auch schon im Einsatz ist.

Erster Gedanke war natürlich bbcode. Aber hier hab ich weder nen guten Editor gefunden, noch einen, der so ein Rechtesystem zulässt.

Also wie löst ihr diese formatierten Usereingaben bei euch? Habt ihr Tipps zu nem Editor? Oder einen bbcode-Editor, der Rechte verwalten kann?

Bin auf eure Ideen und Links gespannt, denn Onkel Google kann leider nicht wirklich weiterhelfen. :roll:
 
Es gibt da eine Library die nennt sich HTMLPurifier, die lässt nur den HTML-Code zu, den du erlaubst und arbeitet nicht mit einer Blacklist sondern einer Whitlist.
Es wird also der HTML-Code des WYSIWYG-Editors neu auf Basis der erlaubten Tags aufgebaut, das Ding ist wirklich sehr gut ;)
 
hab nicht die ahnung wie der WYSIWYG Editor aufgebaut ist, aber ich denke, es könnte möglich sein, die nutzbaren "Elemente" (Operationen wie Fett, kursiv, htmltags, ... ) einzuschränken, und somit die Mögilchkeiten begrenzt.

Quasi so in der art:

instance = new wysiwyg() // alles erlaubt
instance2 = new wysiwyg( no_htmltags ) //alles ausser htmltags

und so weiter...

Leider ist das sicher nur theoretisch, aber sollte eigentlich mal soweit angepasst werden, damit es auch so nutzbar ist.
Natürlich fragen sich dann die ENtwickler, wozu dann einen Editor, der eingeschränkt werden soll ?
Dann halt den Purifier dahinter klemmen !