Maison > développement back-end > tutoriel php > Comment Yii filtre le mauvais code

Comment Yii filtre le mauvais code

*文
Libérer: 2023-03-18 21:52:02
original
1686 Les gens l'ont consulté

Comment Yii filtre-t-il les mauvais codes ? Cet article présente principalement l'utilisation du purificateur Yii CHtmlPurifier, qui peut réaliser la fonction de filtrage du mauvais code et implique des compétences d'utilisation associées dans les contrôleurs, les modèles, les filtres et les vues. Les amis dans le besoin pourront s'y référer. J'espère que cela sera utile à tout le monde. .

Les détails sont les suivants :

1. Utilisé dans le contrôleur :

public function actionCreate()
{
  $model=new News;
  $purifier = new CHtmlPurifier();
  $purifier->options = array(
    'URI.AllowedSchemes'=>array(
              'http' => true,
              'https' => true,
    ),
       'HTML.Allowed'=>'p',
  );
  if(isset($_POST['News']))
  {
    $model->attributes=$_POST['News'];
    $model->attributes['content'] = $purifier->purify($model->attributes['content']);
    if($model->save())
      $this->redirect(array('view','id'=>$model->id));
  }
}
Copier après la connexion

2. Utilisé dans le modèle :

protected function beforeSave()
{
  $purifier = new CHtmlPurifier();
  $purifier->options = array(
    'URI.AllowedSchemes'=>array(
              'http' => true,
              'https' => true,
    ),
       'HTML.Allowed'=>'p',
  );
  if(parent::beforeSave()){
    if($this->isNewRecord){
      $this->create_data = date('y-m-d H:m:s');
      $this->content = $purifier->purify($this->content);
    }
    return true;
  }else{
    return false;
  }
}
Copier après la connexion

3 . dans les filtres :

public function filters()
{
  return array(
    'accessControl', // perform access control for CRUD operations
    'postOnly + delete', // we only allow deletion via POST request
    'purifier + create', //载入插入页面时进行些过滤操作
  );
}
public function filterPurifier($filterChain){
  $purifier = new CHtmlPurifier();
  $purifier->options = array(
    'URI.AllowedSchemes'=>array(
              'http' => true,
              'https' => true,
    ),
       'HTML.Allowed'=>'p',
  );
  if(isset($_POST['news']){
    $_POST['news']['content'] = $purify($_POST['news']['content']);
  }
    $filterChain->run();
}
Copier après la connexion

4. Utilisation dans les vues :

<?php $this->beginWidget(&#39;CHtmlPurifier&#39;); ?>
...display user-entered content here...
<?php $this->endWidget(); ?>
Copier après la connexion

Recommandations associées :

Yii2 modal fenêtre contextuelle ActiveForm implémente la vérification asynchrone du formulaire Ajax

Yii2 implémente la connexion par interconnexion QQ

Analyse simple Yii2 utilisant le cache

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal