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.';
    }
}
?>
tayfunerbilen
1418 gün önce

birisi panele erişim sağladığında eğer böyle bir şey olurs xss'den daha büyük probleminiz var demektir :)
bu işlemi sadece panelden yapıyorsanız x bir kontrolere ihtiyacınız yok, kullanıcıdan bilgi alırken ya strip_tags() ile belli html'leri aktif edersiniz ya da markdown kullanırsınız tamamen html'den bağımsız ya da hiç html göstermezsiniz.