Frage

Wie beschränke ich die Typen von HTML, dass ein Benutzer kann in ein Textfeld? Ich laufe ein kleines Forum einige benutzerdefinierte Software, die ich Beta-Tests bin, aber ich muss wissen, wie die HTML-Eingabe zu begrenzen. Irgendwelche Vorschläge?

War es hilfreich?

Lösung

ich würde einen etwas alternativen Ansatz vorschlagen:

  • nicht filtert eingehende Benutzerdaten (über Prävention von SQL-Injection). Benutzerdaten sollten so rein wie möglich gehalten werden.
  • Filter alle ausgehenden Daten aus der Datenbank, das ist, wo Dinge wie das Entfernen der Tags, etc .. passieren sollte

halten Benutzerdaten sauber ermöglicht Ihnen mehr Flexibilität, wie es angezeigt wird. Filtern Sie alle ausgehenden Daten ist eine gute Gewohnheit, in zu erhalten (entlang des nie Vertrauen Daten meme).

Andere Tipps

Du hast nicht sagen, was das Forum mit gebaut wurde, aber wenn es PHP ist, finden Sie unter:

  

http://htmlpurifier.org/

     

Bibliotheks-Features: Weiße Liste, Entfernen, wohlgeformte, Nesting, Attribute, XSS sicher, Standards sicher

Sobald der Text vorgelegt wird, können Sie alle / Alle Tags Streifen, die Ihren vordefinierten Satz nicht in PHP mit einem regulären Ausdruck entsprechen.

Es wäre in etwa so aussehen wie folgt vor:

find open tag (<)
if contents != allowed tag, remove tag (from <..>)
  1. Parse der Eingang bietet und alle HTML-Tags Streifen aus, die nicht übereinstimmen genau die Liste ermöglichen Sie es. Dies kann entweder eine komplexe Regex sein, oder Sie können eine Stateful-Iteration durch das Zeichen [] der Eingabestrings Aufbau des erlaubt Eingabestring und Strippen unerwünschte Eigenschaften auf Tags wie img tun.

  2. Verwenden Sie ein anderes Code-System (BBCode, Markdown)

  3. einige Code online finden, die dies bereits der Fall ist, als Basis für die Implementierung zu verwenden. Zum Beispiel Slash muss dies durchführen, so dass für ihre Umsetzung in der Perl und verwenden Sie die reguläre Ausdrücke (die ich nehme an, es gibt)

Egal, was Sie verwenden, sicher sein, welche Art von HTML-Inhalte informiert werden kann gefährlich sein.

z. ein

scroll top