看一下下面的代码:
$this->input->post('title', FALSE);
我已手动禁用 XSS 过滤。
现在让我们看一些例子:
<p BAD_ATTR_KEY="BAD_ATTR_VAL">Salam</span>
返回:
<p BAD_ATTR_KEY="BAD_ATTR_VAL">Salam</span>
<p style="color: red;">Salam</span>
返回:
<p red;">Salam</span>
有什么想法可以禁用此行为,以便网站管理员能够轻松地将不同的内联样式分配给页面上的任何元素吗?
更新:
我在 application/config/config.php
中启用了全局 XSS 过滤,因为我一直需要它。
仅当受信任的管理员从后端发布其内容时,我才不需要 XSS 过滤。为此,我手动禁用了 XSS 过滤,如上面代码中所述。而且我认为手动配置应该覆盖 config.php
中的默认配置,因此应该没有问题。
最佳答案
我根据 Asad 找到了我的问题所在的评论。
即使现在我已经使用以下方法手动禁用了 XSS 过滤:
$body = $this->input('body', FALSE);
,它仍然被删除,因为我在 application/config/config.php
中启用了 XSS 过滤。
我真的不知道为什么不能使用第二个参数覆盖它。
关于php - Codeigniter 从 html 输入中删除内联样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995934/