【发布时间】:2012-10-11 08:21:11
【问题描述】:
看看下面的代码:
$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 的默认配置,所以应该没有问题。
【问题讨论】:
-
在我看来,XSS 过滤仍在进行中。你在 config.php 中禁用了吗?
-
@Asad 据我所知,在 config.php 中启用和禁用它只会更改默认行为。但是现在,我手动禁用了它,因为除了现在之外我一直都需要它。
-
@Asad 你是对的。请发表您的评论作为答案,以便我能够接受它。但是为什么不应该手动覆盖呢?那么
$this->input->post()中的第二个参数有什么作用呢?
标签: php codeigniter xss user-input validation