Yii-CHtmlPurifier- 净化器的使用(yii过滤不良代码)

1. 在控制器中使用:

public function actionCreate()
{
    $model=new News;  

    $purifier = new CHtmlPurifier();
    $purifier->options = array(
        ‘URI.AllowedSchemes‘=>array(
                            ‘http‘ => true,
                           ‘https‘ => true,
        ),
              ‘HTML.Allowed‘=>‘div‘,
    );  

    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));
    }
}

  

2. 在模型中的使用:

protected function beforeSave()
{
    $purifier = new CHtmlPurifier();
    $purifier->options = array(
        ‘URI.AllowedSchemes‘=>array(
                            ‘http‘ => true,
                           ‘https‘ => true,
        ),
              ‘HTML.Allowed‘=>‘div‘,
    );  

    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;
    }
}

  

3. 在过滤器中的使用:

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‘=>‘div‘,
    );
    if(isset($_POST[‘news‘]){
        $_POST[‘news‘][‘content‘] = $purify($_POST[‘news‘][‘content‘]);
    }
        $filterChain->run();
}

  

4. 在视图中的使用:

<?php $this->beginWidget(‘CHtmlPurifier‘); ?>
...display user-entered content here...
<?php $this->endWidget(); ?>

  

时间: 2024-10-18 11:56:29

Yii-CHtmlPurifier- 净化器的使用(yii过滤不良代码)的相关文章

YII框架的部署 通过YII脚手架程序创建应用程序系统

1,把YII框架里面的framework复制粘贴到nginx目录下 2,创建一个商城系统: 1)修改环境变量 制定php.exe的目录 2)C:\Users\Administrator>cd C:\Users\Administrator C:\Users\Administrator>d: D:\>cd wamp D:\wamp>cd nginx D:\wamp\nginx>cd html D:\wamp\nginx\html>cd YII D:\wamp\nginx\h

Yii框架中如何使用Yii::t()实现文本信息翻译和文件翻译

1.设置本地化语言 在protected/config文件夹下的main.php中做如下设置: return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'My Web Application', 'sourceLanguage'=>'en_us', 'language'=>'zh_cn', 2.定义翻译文件 这里我使用的时通过PHP文件实现文本信息翻译(更多方法说明参考Yii框架官方

php 安全过滤函数代码

php 安全过滤函数代码,防止用户恶意输入内容. //安全过滤输入[jb] function check_str($string, $isurl = false) { $string = preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','',$string); $string = str_replace(array("\0","%00","\r"),'',$string); empty($i

c# 过滤HTML代码 源代码,案例 下载

#region 过滤HTML代码 //替换掉html字符,只显示文字信息. public string replaceHtmlCode(string Htmlstring) { Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Html

禁止Chrome加载电脑管家广告过滤脚本代码

今天用Chrome调试脚本,发现加载了以下脚本内容: /* 电脑管家chrome 广告过滤 */ var GJAD_CS = { elemhideElt : null, setElemhideCSSRules: function (selectors) { if (GJAD_CS.elemhideElt && GJAD_CS.elemhideElt.parentNode) GJAD_CS.elemhideElt.parentNode.removeChild(GJAD_CS.elemhide

yii过滤xss代码,防止sql注入

作者:白狼 出处:www.manks.top/article/yii2_filter_xss_code_or_safe_to_database 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 实际开发中,涉及到的语言也好,框架也罢,web安全问题总是不可避免要考虑在内的,潜意识中的考虑. 意思就是说喃,有一条河,河很深,在没办法游过去的情况下你只能沿着河上唯一的一座桥走过去. 好啦,我们看看在yii框架的不同版本中是怎么处

Yii 1.0 伪静态即Yii配置Url重写(转)

第一步:配置 URL Management(网址管理) 只需要在config文件夹下面的main.php文件中进行配置就好了 'components' => array( 'urlManager' => [ 'showScriptName' => false,//这里是隐藏index.php那个路径的 'urlFormat' => 'path', 'rules' => [ '<controller:\w+>/<id:\d+>' => '<c

Yii 1.0 伪静态即Yii配置Url重写

今天学习那个yii的时候,觉得URL太麻烦,想自己配置一下,于是就百度了一下,然后自己总结下,留着后面配置的时候看看. yii框架中有个很重要的组件:URL Management(网址管理) 进行yii伪静态就是只需要配置这个就可以了. 没有配置之前是这个样子的: 配置成功后的URL就是这样的: 第一步:配置URL Management(网址管理) 只需要在config文件夹下面的main.php文件中进行配置就好了 'components' => array( 'urlManager' =>

yii2过滤xss代码,防止sql注入

两个原则问题:1.表单提交内容,想安全的存入数据库2.想安全的对数据进行输出 <?= \yii\helpers\Html::encode($title) //纯文本 ?><?= \yii\helpers\HtmlPurifier::process($content) //html显示的文本 ?> 原文地址:https://blog.51cto.com/13238147/2360550