v2.5.2
Giriş yap

Wysiwyg html editor Mysql insert güvenlik

themonster
651 defa görüntülendi

Dostlar merhaba wysiwyg html editorden gelen içeriği veritabanına ekletme yapıyorum.

Kafama takılan sorulardan birisi güvenlik açığı xss olur mu ?
Diyelim ki birisi panele erişim sağladığında script ile alert vs verdirebilir mi?
Nasıl bir güvenlik önlemi almalıyım insert kodları şu şekilde;

<?php
function mb_trim($string)
{
    $string = preg_replace("/(^s+)|(s+$)/us", "", $string);
    return addslashes(htmlspecialchars($string));
}

// içerik gösterme fonks.
function contentCorrection ($variable)
{
    $variable = nl2br($variable);
    return $variable;
}


if ( $_POST )
{
    // insert işlemi
    $title          = strip_tags(mb_trim($_POST['title']));
    $announcement   = $_POST['announcement']; // to-do filtre
    $add = DB::insert("INSERT INTO `announcements` (`title`, `content`, `seen_user_ids`) VALUES (?, ?, ?)",
        [$title, $announcement, "[]"]);

    if ($add)
    {
        unset( $JSON['error']);
        $JSON['message'] = 'Başarıyla eklendi.';
        $JSON['redirect'] = '/announcements/list';
    } else {
        $JSON['message'] = 'Teknik bir hatadan ötürü eklenemedi.';
    }
}
?>
bgokcol
1418 gün önce

Tayfun hocanın dediği gibi saldırgan panele giriş yaptıktan sonra XSS için endişelenmeye gerek yok. Ama yine de buna çözüm yapmak istiyorum derseniz şöyle bir kütüphane var:
http://htmlpurifier.org/

Bu kütüphane sayesinde XSS kodlarını temizleyebilirsiniz POST edilen veriden.