我在codeignter中有一个管理面板。我在application / config / config.php中启用了全局XSS过滤,因为我一直都需要它。
我有一个表单来添加电子邮件模板。当我试图发布电子邮件模板html内容XSS过滤器从发布的内容中删除所有样式属性。 我也试过
$temptate_body = $this->input->post('temptate_body', FALSE);
当我全局禁用XSS过滤器时,它工作正常,但我不想全局禁用它。
表单通过Jquery AJAX发布。所以我也用Google搜索模板体内容,就像PHP htmlentities函数一样,但不是运气。
如何禁用此行为,以便网站管理员能够轻松地将内联样式分配给电子邮件模板?
答案 0 :(得分:3)
您可以读取原始输入数据以绕过过滤器,但您不应该这样做。
'global_xss_filtering'设置对输入进行自动XSS过滤,这是一种不好的做法,这就是CodeIgniter 3中此功能已弃用的原因。
不启用全局XSS过滤;手动转义输出;并且,除非你的那种形式在管理面板中并且你真的相信它的来源,不要只是跳过转义,因为它剥离了style属性。该属性被剥离,因为它有潜在危险。