Yii2 Framework ile HTML içerikli sayfalarda güvenlik açısından bazı verileri filtrelemek zorunda kalabiliriz.
<div class="post">
<?= "<script>alert('plain')</script>" ?>
<?= yii\helpers\HtmlPurifier::process("<script>alert('HtmlPurifier')</script>") ?>
<?= yii\helpers\Html::encode("<script>alert('encode')</script>") ?>
<?= yii\helpers\Html::decode("<script>alert('decode')</script>") ?>
</div>
Yukarıdaki script
kodlarının HTML sayfasının içine eklediğimizde sadece plain
ve decode
çalışıp uyarı verecektir. Diğerler bu script kodlarını sayfa içinde çalıştırmayacaktır.
HtmlPurifier
, çıktıyı güvenli hale getirmede mükemmel bir iş çıkarırken, hızlı değildir. Uygulamanız yüksek performans gerektiriyorsa, filtreleme sonucunu önbelleğe almayı düşünmelisiniz.