Frage

Ich bin derzeit mit diesem Prozess zu Desinfizieren / Filter Kommentar von Nutzern eingegeben ->
Diese wird verwendet Schrägstriche abzustreifen ... und

 if (get_magic_quotes_gpc()) {
        function stripslashes_deep($value)
        {
            $value = is_array($value) ?
                        array_map('stripslashes_deep', $value) :
                        stripslashes($value);

            return $value;
        }

        $_POST = array_map('stripslashes_deep', $_POST);
        $_GET = array_map('stripslashes_deep', $_GET);
        $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
        $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
    }

Dann geht der Kommentar durch diese Funktion, um die Daten zu sanieren ...

   function my_strip_tags($str) {
                $strs=explode('<',$str);
                $res=$strs[0];
                for($i=1;$i<count($strs);$i++)
                {
                    if(!strpos($strs[$i],'>'))
                        $res = $res.'&lt;'.$strs[$i];
                    else
                        $res = $res.'<'.$strs[$i];
                }
             return strip_tags($res);   
    }

Danach geht es direkt in die Datenbank vorbereitete Anweisung ..

function add_comment($comment,$type,$update_id,$user_id){
            $query="INSERT INTO comment_updates (updateid,userid,comment) VALUES(?,?,?)";
                if($stmt=$this->conn->prepare($query)) {
                $stmt->bind_param('sss',$update_id,$user_id,$comment);
                $stmt->execute();
                    if($this->conn->affected_rows==1){
                    $stmt->close();
                    return true;
                    }
            }
        }

Ich wollte nur wissen, ob dies sicher genug ist oder wenn sie noch andere besseren Alternativen ... Danke

War es hilfreich?

Lösung

Sie Ihre eigenen HTML Sanitizer nicht schreiben. Sie werden XSS-Lücken schaffen.

Wenn Sie vorhaben, Ihre eigenen zu schreiben, zumindest laufen die ha.ckers.org xss smoketests dagegen

Zwischen diesen Tests und die HTMLPurifier Vergleich von Filtern , sollten Sie in der Lage sein, eine gute Idee zu erhalten, von , wie kompliziert html sanitization ist -. und warum Sie es den Profis überlassen sollte

Andere Tipps

Das Wichtigste, wenn es um die Speicherung von Daten in eine Datenbank zu denken ist es zu entkommen; mit mysql_real_escape_string oder mysqli_real_escape_string oder PDO::quote auf der DB ab, die Sie‘ re mit (oder anderen Funktionen für oracle / pg /...)

Eine andere Lösung wäre bereit, Aussagen zu verwenden (siehe mysqli::prepare und / oder PDO::prepare - die sind nicht von der alten mysql_* Erweiterung unterstützt) , die mit Flucht Daten an Ihrem befassen; -)


Wenn man über die HTML-Ausgabe zu denken, haben Sie zwei Möglichkeiten:

alle Zeichen entkommen, wenn es in der Datenbank Puting. Beim Aufrufen und Anzeigen stellen Sie sicher, HTML Formatierungen wie <sometag> zu entkommen, so dass es statt zeigt als Code behandelt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top