Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 25.01.09 14:47 
Hallo!

Soeben habe ich ein Update der Forensoftware durchgeführt. Es umfasst ein Feature, welches im Idealfall nicht auffällt: ein neuer Syntax-Parsser. :party:

Der alte Parser hat lange Zeit einen wirklich guten Job gemacht und er funktinionierte selbst mit den Funktionen, die ich "so da reingefrickelt" hatte, ziemlich gut. Aber er ist mit der Zeit doch in die Jahre gekommen und so habe ich mich entschlossen, endlich den Schritt zu machen, einen komplett neuen Parser zu schreiben. :les:

Der Parser arbeitet völlig anders als der Alte, sollte jedoch Ergebnisse liefern, die genauso aussehen wie beim alten Parser. Beim Aussehen der Quelltext sollte es keine Unterschiede geben. Verzichtet wird allerdings auf diese eher merkwürdige Tabellenstruktur zum Darstellen des Quelltextes, es wird nun vollständig auf den pre-Tag zurückgegriffen, was den HTML-Quelltext deutlich schlanker machen sollte.

Auswirkungen hat es auf das Parsen von Highlight-Tags: Diese werden innerhalb von Syntax-Tags nun vom Syntax-Parser geparst und nicht mehr vom BBCode-Parser. Dadurch werden diese deutlich zuverlässiger verarbeitet. Einschränkungen sind, dass ein von einem Highlight-Tag "aufgespaltenes" Schlüsselwort nicht mehr als solches erkannt wird - das ist aber IMHO nicht wirklich schlimm.

Das Ersetzen des Parsers war eine größere "Operation", sodass noch mit dem ein oder anderen Fehler zu rechnen ist. Meldungen sind wie immer erwünscht :-)

Grüße
Christian

P.S.: Mit dem Parser wurde der Ox- in den Prism-Tag geändert.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".


Zuletzt bearbeitet von Christian S. am Sa 21.02.09 21:09, insgesamt 1-mal bearbeitet
Christian S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 28.01.09 19:17 
Hallo!

Die Arbeitsweise des Parsers scheint auch so seine Tücken zu haben. Das Analyisieren des Quelltextes und die Erzeugung von HTML-Code wird von verschiedenen Klassen erledigt. Es gibt allgemeine Basisklassen für beides mit abgeleiteten Klassen für jede Sprache.

Nur bei den Code-Tags macht es keinen Sinn, von den "allgemeinen" Klassen abzuleiten, die machen ihr eigenes Ding. Dabei habe ich vergessen bei den Code-Tags einen Aufruf von htmlspecialchars einzufügen, daher war es möglich, JavaScript-Code innerhalb dieser Tags auszuführen. Dieser Fehler ist nun behoben. Früher ging es leider nicht, weil ich in der Uni keine Passwörter habe und auch nicht früher Schluss machen konnte.

Ich habe alle Autologin-IDs aus der Datenbank entfernt, da diese durch JavaScript und XSS auslesbar gewesen wären und man sich somit Zugang zu einem Account verschaffen könnte.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".