2012-05-21 7 views
6

Mögliche Duplizieren:
What's the best method for sanitizing user input with PHP?Gibt es trotzdem HTML-Code zu bereinigen, indem PHP in einer Datenbank gespeichert wird?

Ich verwende TinyMCE Anwendungen zu ermöglichen, einen kleinen Teil einer Web-Seite zu bearbeiten.

Dieses Feld wird in einer Datenbank gespeichert.

Gibt es einen regulären Ausdruck, den ich verwenden kann, um den eingehenden HTML-Code zu reinigen, so dass es keine Art von Angriffen vermeidet?

Ich habe dies auf einzelne Zeile eingegeben, Text/Zahlen etc, aber nicht sicher, wie man darüber gehen, wenn eine HTML-Zeichenfolge erhalten.

Antwort

5

können Sie die PHP-Funktionen verwenden: striptags und htmlspecialchars:

http://php.net/manual/en/function.strip-tags.php

+0

Dies wird den HTML von TinyMCE produziert auslöschen. Er möchte HTML zulassen, aber XSS-Bedrohungen entfernen. – MrCode

+0

@MrCode ist korrekt. Ich möchte keine Tags entfernen, nur gefährliche Tags oder Javascripts entfernen. – GT22

2

Sie können dies nutzen -

function safe_sql($obj) 
{ 
    $obj = htmlspecialchars($obj); 
    $obj = str_replace('"',""",$obj); 
    $obj = str_replace("'","'",$obj); 
    $obj = str_replace("`","`",$obj); 
    $obj = mysql_real_escape_string($obj); 
    return $obj; 
} 

ich bin mit und es funktioniert gut. Und Sie können diese Funktion auch verwenden, um es normal zu machen (nachdem Sie die Daten aus der Datenbank ziehen) -

function to_Normal($data) 
{ 
    $data = htmlspecialchars_decode($data); 

    $data = str_replace(""",'"',$data); 
    $data = str_replace("'","'",$data); 
    $data = str_replace("`","`",$data); 
    $data = nl2br($data); 
    return $data; 
} 
Verwandte Themen