yii xss模型安全
在这篇文章里,我们将描述一个基于WEB应用下避免不合法的内容注入。
我们要在一个行为里使用htmlpurifier类,用这种行为可以加强任何模型并表明各属性我们想让它们XSS安全。
我写了以下行为:
class CSafeContentBehavior extends CActiveRecordBehavior
{
public $attributes =array();
protected $purifier; function __construct(){
$this->purifier = new CHtmlPurifier;
} public function beforeSave($event)
{
foreach($this->attributes as $attribute){
$this->getOwner()->{$attribute} = $this->purifier->purify($this->getOwner()->{$attribute});
}
}
}
把这个类放在你的应用程序目录,例如:application/behaviors/CSafeContentBehavior.php。现在你在模型的行为中这样去写:
class Post extends CActiveRecord
{ public function behaviors(){
return array(
'CSafeContentBehavor' => array(
'class' => 'application.behaviors.CSafeContentBehavior',
'attributes' => array('title', 'body'),
),
);
}
现在我们可以开始了。我们的post模型在每个保存操作中将净化标题和内容列。
原文地址:http://www.yiiframework.com/wiki/67/xss-safe-model-content/
yii xss模型安全的更多相关文章
- YII model模型和登陆详解
模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. 数据对象的每个字段对应模型中的一个属性.每个属性 ...
- Yii 自定义模型路径
例如现有两个 Yii 项目,分别是 test1 和 test2.在 test1 中,已经有模型了,test2 直接调用 test1 中的模型,其实添加个别名,然后修改下配置即可. 先在 index.p ...
- yii框架模型操作
命令行自动生成model模型类 php yii gii/model --ns=app\\modules\\v1\\models --tableName=SCM_tbInvBalance_new --m ...
- YII XSS(跨站脚本攻击)
\Yii::$app->response->headers->add('X-XSS-Protection','0');//表示关闭YII的跨站脚本过滤//http://www.fro ...
- YII 数据库,模型,登录验证
//protected/config/main.php //数据库连接设置 'db'=>array( 'connectionString' => 'mysql:host=localhost ...
- yii添加模型基础类
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)
YII 框架源码分析 百度联盟事业部——黄银锋 目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 ...
- Yii安装使用教程(转)
Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用.它使Web开发中的 可复用度最大化,可以显著提高你的Web应用开发速度.Yii 这个名字(读作易(Yee) 或 [ji:] ...
随机推荐
- 通过Ollydbg定位私有协议通信明文
简介:做安全的筒子经常会碰到这样的问题,当向要分析通信协议的时候往往都会有加密通信保护,对于SSL通信我们可以使用SSL劫持,但对于应用层面的加密就显得无能为力了,最好的办法就是调试应用,在应用内部去 ...
- POJ 3680 Intervals(费用流)
Intervals Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5762 Accepted: 2288 Descrip ...
- GNU C内联汇编(AT&T语法)
转:http://www.linuxso.com/linuxbiancheng/40050.html 内联汇编提供了可以在C或C++代码中创建汇编语言代码,不必连接额外的库或程序.这种方法对最终程序在 ...
- Android 垃圾回收,用软引用建立缓存
内存对于手机来说是非常重要的. 下面总结了我们在注意创建对象时的规则,以及怎么更好更快的实行GC回收,和怎么构建高速的对象cace缓冲. 1 避免循环遍历的创建对象,哪怕对象很小,也是要占资源的. 2 ...
- Sqlserver数据库还原.bak文件失败的两个问题
一.SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决方案:将数据库限制访问改为:SINGLE_USER 数据库-->属性-->选项-->状 ...
- 如何优雅的编写Objective-C语言?
① 减少缩写 命名缩写只用于通用专业术语,如URL,不可自创命名缩写,如Ctr.Msg.命名宁可长一些,也不要难于理解. ② 过程化 动作发生之前用Will,发生之后用Did,询问是否发生用Shoul ...
- 关于TagHelper的那些事情——Microsoft.AspNet.Mvc.TagHelpers介绍
写在开始 在上一篇文章中,简单介绍了什么是TagHelper,怎么使用它.接下来我会简单介绍一下微软随着ASP.NET5一起发布的TagHelpers.它们分别是: AnchorTagHelper C ...
- iOS:quartz2D绘图
Quartz-2D:绘图 一.介绍: •Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境 •Quartz 2D API可以实现许多功能,如基于路径的绘图.透明度.阴影 ...
- phpstorm不安装apache就可以本地测试PHP
最近再搞个PHP的项目,找了很多发现phpstorm这个非常小巧而且很好用,,顺便推荐一下idea开发android非常不错,这2个IDE都是一家公司的.本文由智动软件(zdexe.com)原创,转载 ...
- Linux115条常用命令
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部2, ...