htmlentities problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • htmlentities problem

    Hallo Community,

    ich möchte gern das der User auf meiner Seite langen Text speichern kann, in der SQL. Das klappt wunderbar. Allerdings möchte ich mich nun gegen Crossscripte schützen.

    Ich habe in meinem Textarea ein Javascript eigegeben und musste mit erschrecken sehen, das eine ALERT Ausgabe möglich ist.

    Wie kann ich meine Variable schützen mit htmlentities o. htmlspecialchars ohne das ich einen Zeilenumbruch meines Textes verliere?

    Wenn ich meinen Text schütze verliere ich meinen Umbruch und alles steht in einer Reihe.

    Wie kann ich alles verbieten ausser den Umbruch ?

    Gruß Thomas

  • #2
    Wie?
    Die Texte in möglichst roher Form in der DB ablegen.
    Vor dem Ablegen auf XSS prüfen.
    Zum Beispiel: Wenn strip_tags() was ändert, ist Gefahr im Verzug.
    htmlentities/htmlspecialchars/nl2br/bbcode, erst kurz vor der Ausgabe zum Browser anwenden.
    Wir werden alle sterben

    Kommentar


    • #3
      Habs nun so geschrieben allerdings ist die Ausgabe der erste Buchstabe und nicht mehr. Was mache ich falsch ?

      PHP-Code:
                    $sql="
                      SELECT
                          *
                      FROM
                          klonberichte
                      WHERE
                          spieler1 = '
      $_SESSION[user_id]'
                      AND
                          spieler2 = '
      $spieler2'
                      AND
                          id = '
      $id'
                      LIMIT 1
                      "
      ;
                          
                  
      $result $db->query($sql);
                  while(
      $row mysql_fetch_assoc($result))
                      {
                          
      $klon $row;
                      }
          
          
      $klon strip_tags($klon'<br>');

          
      $title=$conf['cms_name']."DW-Map - Klonbericht einsehen";
          
      $nowtext="Start";
          
          INCLUDE (
      LOADTEMPLATE);
          
      $tpl->assign('serverzeit',$serverzeit);
          
      $tpl->assign('spieler2',$spieler2);
          
      $tpl->assign('klon',$klon);
          
      $tpl->display(template_dir.'bin/commander/klonrd.tpl'); 

      Kommentar


      • #4
        http://htmlpurifier.org/ + http://php-ids.org/ = teh win!!111elf
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar

        Lädt...
        X