【问题标题】:XSS Filtering won't disable on post codeigniterXSS 过滤不会在 post codeigniter 上禁用
【发布时间】:2012-08-20 19:44:38
【问题描述】:

我正在为我的网站开发一个基本的 WYSIWYG,我已经使用这条线来关闭 XSS 过滤

$this->input->post(NULL, FALSE); 

我也试过了

$this->input->post(); 

据我了解,这应该给我所有的 postdata 而不是过滤它,但是,它似乎仍在删除我的 <script> 标签。暂时不考虑安全问题(我将继续处理这些问题)如何保证在不为整个站点禁用 XSS 的情况下不会删除我的脚本?

附:我还验证了 $config['global_xss_filtering'] 设置为 false。

【问题讨论】:

  • 你检查过你的配置文件吗?您可以在那里全局启用它。
  • $config['global_xss_filtering'] = false;
  • 请注意,Codeigniter 不会删除所有标签,它会删除一些您通常不会用于所见即所得编辑器的标签(我假设)。以下是 Codeigniter 将编码的“顽皮”HTML 单词列表:"alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss"只有在使用“顽皮”列表中的任何内容时才应禁用 XSS 过滤,否则我看不出有任何禁用它的理由。
  • @AzizAG 至于禁用 XSS 过滤,这是一个更好的解决方案,因此从顽皮列表中删除您将使用的任何标签(小心)该列表可以在system/core/Security.php line 427.

标签: php codeigniter xss


【解决方案1】:

根据 CI 文档,如果您希望在不使用 XSS 的情况下提取整个帖子数组,则应将 $this->input->post(NULL, FALSE); 替换为 $this->input->post();

http://codeigniter.com/user_guide/libraries/input.html

【讨论】:

  • 这一切都很好(因为 Null、false 是该函数的默认值),但它仍在过滤。
  • 让我现在很难过。您是否尝试过将其作为单独的项目进行调试? IE。发布到唯一代码是print_r( $this->input->post() ); 或类似的方法?如果您想发布更多代码,我会查看它,但我已经查看了 CI 核心,您似乎对上面的内容很好。
  • 原来是我们系统中的自定义控制器中的某个东西覆盖了该设置。感谢您的帮助:D
  • 这是不正确的。当配置文件中的 xss 设置为 TRUE 时,会在加载控制器之前完成过滤。因此,将$this->input->post() 设置为任何内容都不会产生任何影响。
猜你喜欢
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 2016-01-25
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多