php - Codeigniter 从 html 输入中删除内联样式

标签 php codeigniter xss user-input validation

看一下下面的代码:

$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/

相关文章:

javascript - 我可以在不同服务器上托管的 iframe 中使用 jQuery.ajax() 吗?

php - 部分正则表达式不应该匹配。或者,最后

c# - 等同于 PHP 中的 C# HttpRequest

PHP 使用 DOM 解析器获取自定义属性值

php - 如何使用 codeigniter 正确实现 PHPass 密码哈希?

php - 最佳实践 : Legitimate Cross-Site Scripting

php - 数据库更新错误数据

php - 代码点火器3.0.1 : Getting values from select and input

php - 如何使用 Codeigniter 的事件记录将结果集转换为对象数组?

html-entities - 如何不使用 owasp antisamy 将特殊字符转换为 html 实体