Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yii2 HTML purifier

I've got a question about Yii2's validation. So, my model validation rule's something like this:

return [
    ['status', 'required', 'on' => 'update'],
    [['status'], function ($attribute) {
        $this->$attribute = \yii\helpers\HtmlPurifier::process($this->$attribute);
    }],
];

The problem is that if the content is <script>alert('something')</script>, it will be blank due to purifier and the content will pass the required validation.

So how can I revalidate the content for require? Or what is the good way to do it?

like image 871
Miller Newbie Avatar asked Dec 24 '22 22:12

Miller Newbie


1 Answers

Validation rules are processed one after another so just put the second one as first.

return [
    ['status', 'filter', 'filter' => function ($value) {
        return \yii\helpers\HtmlPurifier::process($value);
    }],
    ['status', 'required', 'on' => 'update'],
];
like image 139
Bizley Avatar answered Jan 18 '23 15:01

Bizley