Dann muesste ich ja den User dazu bringen was Kompliziertes in seinen Augen zu machen und das will ich nicht. Er soll den Code so eingeben koennen wie er das will.Zitat
Wenn ich jetzt den BBcode [ b ][ / b ] habe soll der User einfach <font style: bold></font> eingeben koennen ohne weitere umstaende.
Geändert von deadshox (10.06.2007 um 15:27 Uhr)
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Und woher soll PHP wissen, was vor und was nach dem Text kommt? Spätestens bei mehreren Tags wirds unnötig kompliziert. Und das ganze unterstützt keine Attribute. Mach das lieber mit Platzhaltern, die du dann ersetzt...
Ja, allerdings übernimmt PHP das mit htmlspecialchars().
--
Ok da liegt ein Missverstaendniss vor.bzw ich hab es mal wieder falsch erklaert.
Ich habe ein BBcode System, was man in einem Admin Panel Bearbeiten und neue BBcodes Hinzufuegen kann.
Beim Hinzufuegen gibt der User einmal den Platzhalter ein, z.b. [ b ] [ / b ] und den HTML Code <font style: bold></font>, Fertig. ;]
Das sieht schon ganz gut aus aber mir is aufgefallen das das ja auch nicht geht, waer ja auch wieder ne Sicherheitsluecke. -.-
Da entsteht doch keine Sicherheitslücke!
Der Admin muss doch tun dürfen, was er will!
Folglich kann er eigentlich auch alles ersetzten lassen, was er will!
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Hm wo de recht hast haste denke ich mal recht. xD
Aber ist das nicht trotzdem ne Gefahr? Kann man da nicht trotzdem von aussen drauf zugreifen?
Weiß ich auch nich, bin halt sehr vorsichtig in sowas denn mein Projekt soll nicht ne Riesige Sicherheits Luecke sein/werden.
Also, eine Sicherheitslücke kann nur entstehen, wenn ein Admin eine einbaut.
Du kannst ja vor Codes warnen, die mögliche Sicherheitslücken reproduzieren.
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Halte ich im Allgemeinen nicht für schlau. So nach dem Motto "Okay, da gibts Bugs wenn ihr was falsch macht, also machts gefälligst richtig!".
Wenn man schon sowas macht, sollte man es auch idiotensicher machen und nicht einfach nur davor warnen, dies oder das zu tun. - Wie gesagt, im Allgemeinen.
Ich muss dazusagen, dass ich das Problem in diesem spezifischen Fall nicht wirklich erkennen kann. Wenn deine Endnutzer schlau genug sind, entsprechende BB Codes inklusive HTML Ersetzungsmuster einzusetzen, werden sie auch wissen, was sie tun und keinen schadhaften Code einfügen (sonderlich viel anrichten könnte das ja eh nicht, außer vielleicht Script oder Object). Im Endeffekt wäre das ja Selbstsabotage, für die du nun wirklich nichts könntest; du willst deinen Nutzern ja nur Möglichkeiten bereitstellen, ihr Projekt verbessern / individualisieren zu können.
Ich halte btw ein Muster wie "[tag=$1]$2[/tag]" => "<tag xyz='$1'>$2</tag>" für am sinnvollsten, dann kann man wenigstens mit mehreren Variablen arbeiten (also nicht nur wie in diesem Falle mit zwei, sondern möglichst unbegrenzt vielen (auch, wenn es nach einer bestimmten Zahl nicht mehr sonderlich viel Sinn macht, da BB Codes die ganze Sache ja vereinfachen und nicht unnötig kompliziert machen soll(t)en)).
Was du natürlich machen könntest, wäre eine Überprüfung des Ersetzungsmusters nach Stichwörtern wie "<script [...]" und ähnlichem. Wenn was entsprechendes gefunden wurde, kannst du eine Warnung anzeigen, dass das verwendete Ersetzungsmuster unter Umständen von Userseite missbraucht werden könnte, um der Seite zu schaden. => "Wirklich fortfahren?": Ja oder Nein.
Generell unterbinden würde ich das nicht, damit raubst du dem Benutzer Freiheit über seine Seite.