Guten Morgen zusammen,
ich würde meinen Spielern gerne die Möglichkeit geben, ihr Unternehmens-Profil mit HTML-Code zu gestalten (siehe z.B. Ebay oder so). Im Gegensatz zu irgendwelchen BB-Code oder anderen vereinfachten Geschichten, ist HTML aber deutlich kritischer wenn es um die Vermeidung der Ausgabe von Schadcode geht.
Daher meine Frage: Kennt jemand zufällig eine starke Library, die die wichtigen Sichrheitsaspekte bei der Ausgabe von HTML berücksichtigt und sich ebenfalls darum kümmert, dass Tags geschlossen, -Tags entfernt und ähnliche Vorkehrungen getroffen werden?
Formatierte Ein-/Ausgabe in Java
gepostet vor 16 Jahre, 8 Monate von Lunikon
gepostet vor 16 Jahre, 8 Monate von Nightflyer
Sowas? jtidy.sourceforge.net/
Um Schadcode zu vermeiden machst am besten noch eine Whitelist mit allen erlaubten Tags.
Um Schadcode zu vermeiden machst am besten noch eine Whitelist mit allen erlaubten Tags.
gepostet vor 16 Jahre, 8 Monate von Kallisti
und erlaubten Attributen... und was am Ende uebrig bleibt ist nichts anderes als bbcode mit zigfachem Aufwand.
gepostet vor 16 Jahre, 8 Monate von TheUndeadable
Ich persönlich habe den Text in ein XmlDocument [ohne Schema] eingelesen. Sämtliche Tags und Attribute auf Whitelist überprüft und dann das XmlDocument wieder in einen Text umgewandelt. Damit fordere ich auch eine valide Eingabe durch den User. Ansonsten schlägt der Import der Xml-Datei fehl.
Nur nicht in Java, sondern in .Net. Aber das Prinzip ist egal.
Nur nicht in Java, sondern in .Net. Aber das Prinzip ist egal.
gepostet vor 16 Jahre, 8 Monate von knalli
Der Vorteil von einem Tidy oder so etwas wie htmlpurifier (aber das nur für PHP) ist aber, dass du die Eingabe des Users automatisch (kontrolliert) verarbeiten bzw. formatieren kannst.
Will heißen: Deprecated Tags wie b werden automatisch in strong umgewandelt, ungültige Style-Attribut-Inhalte weder genauso gefilteret wie invalide (blacklisted) Attribute usw.
Die Möglichkeit mit dem XML Dokument kann das zwar im Endeffekt auch, aber da musst du die o.g. feinheiten alle selber einbauen.
Will heißen: Deprecated Tags wie b werden automatisch in strong umgewandelt, ungültige Style-Attribut-Inhalte weder genauso gefilteret wie invalide (blacklisted) Attribute usw.
Die Möglichkeit mit dem XML Dokument kann das zwar im Endeffekt auch, aber da musst du die o.g. feinheiten alle selber einbauen.
gepostet vor 16 Jahre, 8 Monate von Klaus
oder klassisch: mit String Replace oder Regex die formatierten Elemente in BB-Code wandeln, dann einmal alle HTML-Entitäten escapen und den BB-Code zurück zu HTML.
gepostet vor 16 Jahre, 8 Monate von Kallisti
Bleibt die Frage wieso überhaupt HTML? Erzeugt doch nur Erwartungen, die nicht erfüllt werden und bietet keine sonderlichen Vorteile gegenüber BBcode (vor allem weil ich kaum glaube, dass die User mit HTML strukturieren und nicht designen wollen).
ein bbcode bleibt ein , waehrend ein html zu werden muesste. Das heisst man müsste entweder alles doppelt speichern oder den aufwendigeren blacklist/whitelist filterprozess bei jedem request durchlaufen, um den User nicht beim Editieren zu verwirren, wenn man validen und sinnvollen Code haben möchte.
Da die Menge der erlaubten Möglichkeiten um Missbrauch zu vermeiden extrem gering sein muss, seh ich wirklich keinen Sinn oder Vorteil darin HTML zuzulassen.
ein bbcode bleibt ein , waehrend ein html zu werden muesste. Das heisst man müsste entweder alles doppelt speichern oder den aufwendigeren blacklist/whitelist filterprozess bei jedem request durchlaufen, um den User nicht beim Editieren zu verwirren, wenn man validen und sinnvollen Code haben möchte.
Da die Menge der erlaubten Möglichkeiten um Missbrauch zu vermeiden extrem gering sein muss, seh ich wirklich keinen Sinn oder Vorteil darin HTML zuzulassen.
gepostet vor 16 Jahre, 8 Monate von TheUndeadable
Soweit stimme ich Kallisto zu. Ich würde evtl die Wiki-Syntax nutzen, aber prinzipiell eher was abstraktes als konkretes HTML, bei dem der Benutzer evtl noch aus Gewohnheit verbotene Tags nutzt.
Die Sache mit dem XmlDocument habe ich nur umgesetzt, da dieses am schnellsten für mich zu bewerkstelligen war.
Die Sache mit dem XmlDocument habe ich nur umgesetzt, da dieses am schnellsten für mich zu bewerkstelligen war.
gepostet vor 16 Jahre, 8 Monate von Lunikon
Nun denn, kann jemand einen BB-Parser für Java empfehlen? *g*
gepostet vor 16 Jahre, 8 Monate von Fornax
Original von Kallisti
Bleibt die Frage wieso überhaupt HTML? Erzeugt doch nur Erwartungen, die nicht erfüllt werden und bietet keine sonderlichen Vorteile gegenüber BBcode (vor allem weil ich kaum glaube, dass die User mit HTML strukturieren und nicht designen wollen).
Wegen WYSIWYG-Editoren. Ich selber spiele mit so einer Javscript Umsetzung. Und die liefern nunmal HTML Code. Und da sollte man auch drauf achten, dass die User nichts manipulieren
gepostet vor 16 Jahre, 8 Monate von Kallisti
Ist auf jeden Fall ein Argument (auch wenn ich die Dinger absolut hasse^^).
Aber gibt es da nicht auch welche, die bbcode liefern?
Aber gibt es da nicht auch welche, die bbcode liefern?
gepostet vor 16 Jahre, 8 Monate von knalli
Aber nicht in dem komplexen Zustand, den diese Editoren liefern. Oder aber, man will nur Fett & Kursiv erlauben (einmal überspitzt ausgedrückt). Wenn ein echter vollständiger Editor verwendet werden soll, kommt man um erlaubtes HTML nicht drumherum.. und dann wiederum ist das Selbsterfinden von einem Tidy eigentlich die Selbstvergewaltigung der eigenen Programmiererkünste. Denn wie eben schon erwähnt.. da braucht man umfassende Black und Whitelisten, und man muss auch so an Feinheiten denken wie unerlaubtes Javscript in CSS-Styleattributen.. holla, bitte.. wer will das noch neu erfinden?
Ich hab' vor einigen Monaten mich mit HTMLPurifier (hier für PHP) befasst, und dort kann man genau sagen, was man haben will (Tag, Attribut, oder Standard nach XHTML 1.0, 1.1 oder HTML 4....) und sogar eigene Filter einbauen. Wie ein Tidy wird auch versucht, ein kaputtes Fragment rekonstruieren. Denn es bringt ja nichts, bsp. in tinyMCE eine Whitelist zu definieren.. prüfen muss man es serverseitig eh.
Ich hab' vor einigen Monaten mich mit HTMLPurifier (hier für PHP) befasst, und dort kann man genau sagen, was man haben will (Tag, Attribut, oder Standard nach XHTML 1.0, 1.1 oder HTML 4....) und sogar eigene Filter einbauen. Wie ein Tidy wird auch versucht, ein kaputtes Fragment rekonstruieren. Denn es bringt ja nichts, bsp. in tinyMCE eine Whitelist zu definieren.. prüfen muss man es serverseitig eh.
gepostet vor 16 Jahre, 8 Monate von Kampfhoernchen
Original von Kallisti
Ist auf jeden Fall ein Argument (auch wenn ich die Dinger absolut hasse^^).
Aber gibt es da nicht auch welche, die bbcode liefern?
Siehe hier im Forum "erweiterter Editor". Ich denke sowas gibts auch fürs phpBB - und dann eben frei.
Gruß
gepostet vor 16 Jahre, 8 Monate von Toby
Woltlab hat im WBB 3.0 einen WYSIWYG-Editor, der mit BBCodes arbeitet.
Die haben da den TinyMCE angepasst für. Das Ganze steht auch unter der LGPL und kann daher frei benutzt werden.
Leider ist das WCF noch nicht downloadbar, die arbeiten daran noch. Sollte aber in absehbarer Zeit soweit sein und ich kann auf Anfrage gern den Editor rauslösen und zur Verfügung stellen.
Wer das Ding mal in Aktion sehen will kann sich gerne in meinem Forum anmelden und dann dort austoben: www.enigma-forum.de/boardintern/board97-testforum/
Die haben da den TinyMCE angepasst für. Das Ganze steht auch unter der LGPL und kann daher frei benutzt werden.
Leider ist das WCF noch nicht downloadbar, die arbeiten daran noch. Sollte aber in absehbarer Zeit soweit sein und ich kann auf Anfrage gern den Editor rauslösen und zur Verfügung stellen.
Wer das Ding mal in Aktion sehen will kann sich gerne in meinem Forum anmelden und dann dort austoben: www.enigma-forum.de/boardintern/board97-testforum/
gepostet vor 16 Jahre, 8 Monate von Kampfhoernchen
Wie gesagt, das konnte das Woltlab 2 auch schon.
gepostet vor 16 Jahre, 8 Monate von Toby
Im WBB2 war das aber ein echtes Java-Applet, das sehr lange zum laden benötigte.
Die aktuelle Lösung ist da sehr viel schneller und eleganter und leichter zu erweitern.
Außerdem ist sie frei, das ist die WBB2-Lösung sicher nicht.
Die aktuelle Lösung ist da sehr viel schneller und eleganter und leichter zu erweitern.
Außerdem ist sie frei, das ist die WBB2-Lösung sicher nicht.
gepostet vor 16 Jahre, 8 Monate von Nightflyer
Ich hatte da mal was für PHP gemacht:
www.flashforum.de/forum/showthread.php?t=242502
Möglichst einfach und schnell gehalten. Kann doch keinem BG-User zumuten das die Seite erst fünf Sekunden lädt bis er was eintippen kann.
www.flashforum.de/forum/showthread.php?t=242502
Möglichst einfach und schnell gehalten. Kann doch keinem BG-User zumuten das die Seite erst fünf Sekunden lädt bis er was eintippen kann.
gepostet vor 16 Jahre, 8 Monate von Lunikon
Wie gesagt, ich arbeite mit Java. Eine Library für Java wäre also sehr von Vorteil, weil ich wie gesagt weder das Rad neu erfinden noch eine Library aus PHP umschreiben will.