Codeignight在保存编辑器内容时XSS挖的坑

前台编辑说,后台的ueditor编辑器咋不能居中了,我第一反应是前台的样式过度渲染了编辑内容的元素样式。

前端的反馈是没有,说看源代码里压根就没有设置style

<p xss=removed >...</p>

我觉得是ueditor编辑器的过滤设置,于是调了半天ueditor的配置ueditor.config

,xssFilterRules: false

//input xss过滤
,inputXssFilter: false

//output xss过滤
,outputXssFilter: false

,
allowDivTransToP: false
 
 

甚至连ueditor.all也动了

switch (node.tagName) {
    case 'style': // 删除这项
    case 'script':
        ....
}

还是无果,于是把关注点放在ci本身,直接在提交前调试文本内容是否有被过滤。

果然 到控制器内文本内容已经被修改了

$this->input->post('editorValue'); //
从CI内置的方法走默认会被过滤掉,当然我的xss全局配置是已经打开的
$config['csrf_protection'] = TRUE;//application/config/config.php

所以上面的代码要修改成

$this->input->post('editorValue',FALSE)

CI文档上还有如下说明

如果希望返回 POST 所有元素并将它们通过 XSS 过滤器进行过滤, 可以将第一个参数设为 NULL ,第二个参数设为 TRUE

$this->input->post(NULL, TRUE); // returns all POST items with XSS filter $this->input->post(NULL, FALSE); // returns all POST items without XSS filter

 

转载于:https://www.cnblogs.com/zhujingxiu/p/9522957.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值