Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)
  • Autor
    Beiträge
  • #1871

    whitenexx
    Teilnehmer

    Hallo zusammen!
    Ich weiß nicht wie ich es beschreiben soll, aber ich versuche es mal.
    In meinem PHP-Projekt müssen User verschiedene Texte eingeben und in der Datenbank speichern können. Diese Texte werden später auch irgendwo ausgegeben.

    Nun könnte ja ein schlauer User auf die Idee kommen, schädlichen Javascript Code oder HTML oder PornoBilder per HTML einzubinden bzw. einfach in die Textbox zu schreiben und abzusenden. Derjenige der sich das ganze dann ansieht hat dann ein Problem.

    Also muss ich die Usereingaben aufjedenfall überprüfen und korrigieren. Nur nach was soll ich suchen?

    Nach gesamtem HTML und Javascript?
    Problem: Wie machen die User dann eine Fettschrift?
    Lösung: BBCodes verwenden, ist das so richtig?

    Nach einzelnen HTML-Tags wie z.B. ?
    Problem: Man braucht ne lange Liste mit Tags und es könnte trotzdem gefährlich werden…
    Lösung: Keine, oder obiges Beispiel verwenden.

    Oder wisst ihr da nochwas anderes? Hier im Forum bei den Postings usw. funktioniert ja auch alles mit BBCodes, also wäre das nicht die beste Lösung?
    Ist es schwer sowas zu programmieren?

    Danke schonmal im Vorraus,
    euer whitenexx

    #7710

    nasenbaer
    Teilnehmer

    Also BB-Code ist da ein guter Ansatz, denk ich einfach mal…

    Einen Parser in php hat man schnell geschrieben:

    • mit htmlspecialchars kann man erst die „“ oder „ü“’s in html-Codes umwandeln und somit „unschädlich“ machen… (Hat den Nebeneffekt, das jeder weiß, wem er nicht vertrauen sollte: Jeder kann den „Schadcode“ sehen, ohne gefährdet zu werden…)
    • mit preg_replace(_callback) dann die bb-Codes durch html ersetzen…

    Beispiel:
    [php]$pattern = ‚#[(b|u|i|s|center|kbd)](.*)[/(\1)]#Ui‘;
    $bb = htmlspecialchars($bb);
    $bb = nl2br($bb);
    while ($bb != $oldstring)
    {
    $oldstring = $bb;
    $bb = preg_replace($pattern, ‚$2‘, $bb);
    /* [… hier mehr …] */
    $bb = preg_replace(‚@(
    [s]*){2,}@‘, „rn

    „, $bb);
    }
    return $bb;
    [/php]

    Für „mehr“ kann man dann etwa sowas einsetzen:

    [php]
    $bb = preg_replace(‚![url=([^[]+)](.*)[/url]!Usi‘, ‚$2ˆ‘, $bb);
    $bb = preg_replace_callback(„/[img](.*)[/img]/Usi“, ‚func_BildGroesse‘, $bb);

    /*


    */

    /* Bildgröße limitieren */
    function func_BildGroesse($was)
    {
    $size = @getimagesize($was[1]);
    if ($size[0] > 400)
    {
    $width = 500; /* oder mehr/weniger */
    // Höhe berechnen
    $height = ($size[1]/$size[0])*$width;
    return “ „;
    }
    else return “ „;
    }
    [/php]

Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.