消除Yii 2中的数据 - 内置还是扩展?

时间:2014-12-01 12:50:46

标签: php yii yii2 sanitization input-sanitization

我找到了Yii 1.1的{​​{3}},但没有看到Yii 2的任何相关扩展名。所以我想知道是否有一个或默认是内置的?

此外,在model中为表格设置了数据属性,例如:

namespace app\models;

use yii\base\model;

class SignupForm extends Model {

    public $company_name;
    public $first_name;
    public $last_name;
    public $email;
    public $username;
    public $password;
    public $password_again;

    /**
     * Validation rules
     */ 

    public function rules() {       
        return [
            // Format some data
            [['company_name', 'first_name', 'last_name', 'email', 'username', 'password', 'password_again'], 'trim'],
            ['username', 'filter', 'filter' => 'strtolower'],
            // If company scenario, require company name
            ['company_name', 'required', 'on' => 'company'],
            //..............
        ];
    )

}

此数据是默认清理还是必须自行清理?

所以我猜我的主要问题是 - 如何使用Yii 2清理数据?

2 个答案:

答案 0 :(得分:5)

您可以尝试使用HTMLPurifier来清理输入,如下所示:

[['attr1', 'attr2'], function ($attribute) {
    $this->$attribute = \yii\helpers\HtmlPurifier::process($this->$attribute);
}],

答案 1 :(得分:0)

我很惊讶在4个月内这个主题没有得到更多反馈。

我认为没有简单的,万能的扩展,并且与任何Web应用程序一样,它取决于输入的数据类型以及如何存储它然后使用它。

但是,我认为以下Yii1维基页面仍然与Yii2相关,并向您显示验证的相关性以及何时:

http://www.yiiframework.com/wiki/275/how-to-write-secure-yii-applications/