Yii 框架里 Yii::app()->request->getParam();这种方法获取到的get post参数有没有过滤不安全字符的功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 框架里 Yii::app()->request->getParam();这种方法获取到的get post参数有没有过滤不安全字符的功能?相关的知识,希望对你有一定的参考价值。

Yii 框架里 Yii::app()->request->getParam();这种方法获取到的get post参数有没有过滤不安全字符的功能?

或者说Yii对$_GET $_POST有没有进行字符过滤,有没有安全机制

YII框架确实在输入中没有过滤,但是在输出中过滤了,用html::encode()和HtmlPurifier::process方法,同样的类似laravel等框架也都是在输出时过滤,而不是在输入时过滤(在模板中过滤),目前主流的方法都是在输出时过滤,因为输入时就是普通的文本,存入数据库时没有任何影响,而输出时才能展示破坏的威力 参考技术A 安全机制在model中rules中。

Yii2.0中Yii::$app与Yii 1.0中Yii:app()的理解

一直不明白Yii::$app与Yii::app(),查找yii框架源码后如下记录分享

(1)在Yii1.0中Yii::app()返回的是你在index.php里创建的CWebApplication实例,在对应的CWebApplication,入口文件:

Yii::createWebApplication($configFile)->run();

对应的类中查找:

public static function createWebApplication($config=null)
{
return self::createApplication(‘CWebApplication‘,$config);
}

追到下一个类中的静态函数:

public static function createApplication($class,$config=null)
{
return new $class($config);
}

查到构造函数:

public function __construct($config=null)
{
//将创建的webapp实例赋值给Yii的静态属性$app,在整个进程中可以使用Yii::app()来使用这个应用对象,这是一个单例模式
Yii::setApplication($this);
}

(2)在Yii2.0中最常用的服务定位器是application(应用)对象,可以通过 Yii::$app 访问,调用Application的构造方法,而其继承自yiiaseApplication构造方法为:

public function __construct($config = [])
{
Yii::$app = $this;
$this->setInstance($this);
$this->state = self::STATE_BEGIN;
$this->preInit($config);
$this->registerErrorHandler($config);
Component::__construct($config);
}

Yii::$app作为一个应用对象实例操控应用全局!

以上是关于Yii 框架里 Yii::app()->request->getParam();这种方法获取到的get post参数有没有过滤不安全字符的功能?的主要内容,如果未能解决你的问题,请参考以下文章

Yii框架在脚本标记中添加延迟

Yii 框架里数据库操作详解-[增加查询更新删除的方法 'AR模式']

yii框架的session

Yii框架Yiiapp()的理解

Yii2.0 组件

如何在 Yii 框架中包含 jquery 插件验证?