在我的 codeigniter 配置中,我有 $config['global_xss_filtering'] = TRUE;
.在我的管理部分,我有一个 ckeditor 生成前端内容。
输入并放置在编辑器中的所有内容都可以正常工作,图像显示效果很好,html 可以正常工作。除了闪光灯。每当我切换到 html 模式并粘贴 youtube 代码段时,它都会被转义,并且代码在首页上可见,而不是显示 youtube 电影。
如果我设置 $config['global_xss_filtering'] = FALSE;
youtube 代码按原样传递。这是因为 'object'、'embed' 等被 CI 标记为“顽皮”并因此被转义。
如何绕过这种 Controller 方法的 xss 过滤?
最佳答案
默认情况下将其关闭,然后在真正需要它的地方启用它。
例如,我为所有 Controller 关闭了它,然后为评论、页面等启用它。
您可以做的一件事是创建一个 MY_Input(或 CI 2 中的 MY_Security),就像 PyroCMS 中的一样,并使用精确副本覆盖 xss_clean 方法,减去对象|嵌入|正则表达式的一部分。
http://github.com/pyrocms/pyrocms/blob/master/system/pyrocms/libraries/MY_Security.php
这是一个很长的路要走,但它确实有效。
也许我们可以创建一个配置选项来列出 2.0 的坏元素?
关于Codeigniter global_xss_filtering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899777/