Codeigniter XSS过滤器删除后Ajax数据的内联样式



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

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

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

当我全局禁用XSS过滤器时,它工作得很好,但我不想全局禁用它。

表单通过Jquery AJAX发布。所以我也谷歌编码模板主体内容像PHP的htmlentities函数,但不是运气。

任何想法如何禁用这种行为,使网站管理员将能够轻松地分配内联样式的电子邮件模板?

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

'global_xss_filtering'设置对输入进行自动XSS过滤,这是一个不好的做法,这就是为什么这个功能在CodeIgniter 3中已弃用。

不启用全局XSS过滤;手动转义输出上的所有;除非你的表单是在管理面板中,并且你真的相信它的来源,否则请不要跳过转义,因为它会剥离style属性。该属性被剥离,因为它有潜在的危险。

最新更新