【发布时间】: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