Guten Morgen,
Morgen
Szenario:
Onlineforum, Gästebuch oder ähnliches.
Eingabe der Seitendaten über Textareas.
Diverse HTML-Tags sind zugelassen. (welche da gefährlich werden könnten, ist mir auch noch nicht ganz klar)
In jedem Fall über eine Positivliste, also alles ausschließen, was du nicht explizit erlaubst. Keine style-Attribute zulassen, sonst kann man ja fast alles machen (z.B. "display:hidden")
Frage:
Was muss ich vor und nach der Anzeige des Textes (HTML-Code) aus der Textarea tun, damit die übrige Seite von diesem variablen Text nicht zerstört wird. Die Tags im Benutzrtext sollen ja nicht _angezeigt_ sondern _ausgeführt_ werden. Wenn jetzt z.B. ein <b> nicht wieder abgeschlossen wird, dann wäre evtl. der gesamte nachfolgende Text fett.
Nicht nur evtl. sondern ganz bestimmt. Du riskierst auf jeden Fall, daß deine Seiten nicht mehr valide sind. Mir fällt jetzt nur ein, daß du überprüfst, ob die Tags abgeschlossen sind. Du suchst also z.B. nach <b>, und wenn du kein </b> findest, dann setzt du es selbst ans ende. Mit PHP sollte soetwas machbar sein, ob es aber im Verhältnis zum nutzen steht, mußt du selbst entscheiden. "Leider" gibt es keinen Tag, der alle vorherigen Tags abschließt.
Wie kann ich möglichst intelligent (also ohne viel Gebastel) darauf reagieren? Was gibt CSS dafür her?
Z.B., was ist mit <? bla bla delete all ?>...
Fals das PHP sein soll, den Befehl kenne ich nicht, aber PHP Tags mußt du natürlich (genauso wie ASP) außschließen, sonst haben die Leute ja zugriff auf dein Dateisystem, und dann wirds brenzlig.
Ehrlich gesagt, würde ich es bleiben lassen. Die wenigsten Internetbesucher wissen mit Tags umzugehen, und für einen Gästebucheintrag sollten die verbreiteten Herforhebungen wie _diese_ eigentlich reichen. Oder du versuchst es nach dem Muster eines Online Editors, und bietest die Möglichkeit, nach dem Schreiben des textes mittels JavaScript einzelne Formatierungen vorzunehmen. Ich prophezeihe dir aber, daß du damit nicht glücklich werden wirst.
cu
Heizer