9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤
目录

一维数组传参
新建控制器:
D:\xampp\htdocs\yii\controllers\HomeController.php
<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:36
*/
namespace app\controllers;
use yii\base\Controller;
class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) {
// 一维数组传方法:
$user = [
'username' => 'lisi1',
'age' => 26,
];
return $this->renderPartial('index', $user); //加载图层,并传参
// return $this->render('index', $data);
}
}
}
新建view模板
D:\xampp\htdocs\yii\views\home\index.php
<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:43
*/
/* @var $this yii\web\View */
<h2><?=$username?></h2>
效果:

二维数组传参
新建控制器:
D:\xampp\htdocs\yii\controllers\HomeController.php
<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:36
*/
namespace app\controllers;
use yii\base\Controller;
class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) {
$user = [
'username' => 'lisi1',
'age' => 26,
];
$article = [
'title' => 'this is test',
];
// 方法一:构造大数组(二维数组),传参
// $data = [
// 'user' => $user,
// 'article' => $article,
// ];
// return $this->renderPartial('index', $data); //加载图层,并传参
//方法二:用compact()函数构造数组(二维数组)参数,效果同方法一
return $this->renderPartial('index', compact('user', 'article')); //加载图层,并传参
// return $this->render('index', $data);
}
}
}
新建view模板
D:\xampp\htdocs\yii\views\home\index.php
<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:43
*/
/* @var $this yii\web\View */
$this->title = 'My Yii Application';
?>
<h2><?php echo $user['username']; ?></h2>
<h2><?= $article['title']; ?></h2> <!-- 最简的方式了,yii里没有模板引擎 -->
<h2><?php dump($user);?></h2>
打印效果

视图非法字符的过滤

新建控制器:
D:\xampp\htdocs\yii\controllers\HomeController.php
namespace app\controllers;
use yii\base\Controller;
class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) {
// 一维数组传方法:
$user = [
'username' => 'lisi1 <script>alert(132);</script>', //这里模拟传出非法字符串
'age' => 26,
];
return $this->renderPartial('index', $user); //加载图层,并传参
// return $this->render('index', $data);
}
}
}
新建view模板
D:\xampp\htdocs\yii\views\home\index.php
<?php
use \yii\helpers\Html;
use \yii\helpers\HtmlPurifier;
?>
<h2><?=Html::encode($username)?></h2> <!-- 转义特殊字符 -->
<!-- 打印结果: lisi1 <script>alert(132);</script> -->
<h2><?=HtmlPurifier::process($username)?></h2> <!-- 彻底的过滤特殊字符 -->
<!-- 打印结果:lisi1 -->
打印结果:

9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤的更多相关文章
- 8.Yii2.0框架控制器接收get.post数据
8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...
- yii2.0框架安装心得
yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...
- yii2.0 访问控制器下的方法时出现 Object Not Found! 解决办法
yii2.0 访问控制器下的方法时出现 Object Not Found! 时 可以查看(apache) 入口文件index.php 的同级有没有 .htaccess 文件 没有.htaccess ...
- 教你在Yii2.0框架中如何创建自定义小部件
本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...
- 7.Yii2.0框架自定义全局工具函数
功能: 新建共用方法的打印方法,可以很方便的格式化打印 一.新建helper/function.php <?php /** * Created by Haima. * Author:Haima ...
- DRF框架(五)——context传参,二次封装Response类,两个视图基类(APIView/GenericAPIView),视图扩展类(mixins),子类视图(工具视图),视图集(viewsets),工具视图集
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查 ...
- 5.0.1版本的react-router-dom路由传参以及路由表的配置和接收页面的接受
//第一种 通过问号传参 //发送 this.props.history.push("/detail?id="+item.downurl) //路由表配置 <Route pa ...
- 12.Yii2.0框架视图模版继承与模版相互调用
目录 模板渲染的两种方式 加载视图 index.php 和 about.php 页面 建立控制器HomeController php 新建模板 home\index.php 新建模板home\abou ...
- yii2.0 从控制器到视图的输出
在controllers/SiteController.php文件中,添加 public function actionSay($message = 'Hello') { return $this-& ...
随机推荐
- dynomite:高可用多数据中心同步
https://github.com/Netflix/dynomite Dynomite, inspired by Dynamo whitepaper, is a thin, distributed ...
- Oracle中文乱码,字符集问题处理
1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 2.进入注册表,依次单击HKEY_LOCAL_MACHINE --> ...
- iOS 面试常问之多线程
本片围绕多线程全面展开叙述. 1.为什么要有多线程/多线程是用来干什么的? 2.多线程是什么? 3.如何创建多线程? 4.多线程在哪些情况下会使用/多线程使用场景? 5.三种多线程的优缺点? 6.线程 ...
- JAVA的API部分介绍
个人理解: Object作为最大的父类,里面存在不少方法,可以在API中具体的查找.比如可以帮助查看是否相同的equals方法,不过要想看具体属性是否相同需要得重写,打印.调用对象相当于调用其tost ...
- 客户端rsyslog配置文件详解
客户端rsyslog配置文件详解 最近再开发一个rsyslog的接收服务端,支持udp,tcp和tls三种协议.所以去仔细研究了一下rsyslog.conf的配置文件,下面来详细说一下. 因为我这儿重 ...
- jQuery知识点小结
博主之前学习一段时间后做了点Demo,借此机会发出来分享,其实学jQuery只要简单看看文档即可,但有些细枝末节的东西文档会默认使用者是了解的,所以还是得系统学习系统训练:Talk is cheap, ...
- 常用API(包装类、System、Math、Arrays、大数据运算)
常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...
- 【虚拟机-网络IP】使用 Powershell 设置 VNET 中的静态 IP
本文包含以下内容 对已有虚机设置静态 Internal IP 取消对对已有虚机设置的静态 Internal IP 创建静态 Internal IP的虚机 使用中的注意点 请注意:以下操作需要下载最新版 ...
- uva 10328 - Coin Toss 投硬币(dp递推,大数)
题意:抛出n次硬币(有顺序),求至少k个以上的连续正面的情况的种数. 思路:转换成求抛n个硬币,至多k-1个连续的情况种数,用所有可能出现的情况种数减去至多k-1个的情况,就得到答案了.此题涉及大数加 ...
- python基础教程总结7——异常
1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有: 异常 描述 NameError 尝试访问一个没有申明的变量 ZeroDivisionError ...