【问题标题】:Codeigniter XSS filter removing inline style on post Ajax dataCodeigniter XSS 过滤器删除后 Ajax 数据的内联样式
【发布时间】:2015-08-19 12:07:06
【问题描述】:

我在 codeignter 中有一个管理面板。我在 application/config/config.php 中启用了全局 XSS 过滤,因为我一直需要它。

我有一个表格来添加电子邮件模板。当我尝试发布电子邮件模板 html 内容时,XSS 过滤器会从发布的内容中删除所有样式属性。 我也试过了

$temptate_body = $this->input->post('temptate_body', FALSE);

当我全局禁用 XSS 过滤器时,它可以正常工作,但我不想全局禁用它。

表单正在通过 Jquery AJAX 发布。所以我也用谷歌搜索了模板正文内容,就像 PHP htmlentities 函数一样,但不是运气。

任何想法如何禁用此行为以便站点管理员能够轻松地将内联样式分配给电子邮件模板?

【问题讨论】:

  • 可以绕过 $_POST 并在请求正文中作为 json 内容类型发送

标签: php jquery ajax codeigniter xss


【解决方案1】:

您可以读取原始输入数据以绕过过滤器,但您不应该这样做。

'global_xss_filtering' 设置对 input 进行自动 XSS 过滤,这是一种不好的做法,这也是 CodeIgniter 3 中不推荐使用此功能的原因。

不启用全局 XSS 过滤; 在输出时手动转义所有内容;并且请,除非您的表单在管理面板中并且您真的信任它的来源,否则不要只是跳过转义,因为它会剥离样式属性。该属性已被剥离,因为它具有潜在危险。

【讨论】:

    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多