Codeigniter - 基于帖子禁用 XSS 过滤

2024-01-22

我正在尝试在网站后面设置一个 CMS,但是每当发布数据时<a href=...其中帖子数据被废弃。

我有$config['global_xss_filtering'] = TRUE;在配置中

我的问题是有没有办法禁用某个项目的 xss 过滤?

e.g.

$this->input->post('content', true);- 打开它,但如何关闭它?

感谢大家。

PVS


如果您想更改默认行为post()方法,您可以扩展核心输入库,或者如果您很懒,您可以将输入库的第 278 行(左右)更改为:

/**
* Fetch an item from the POST array
*
* @access   public
* @param    string
* @param    bool
* @return   string
*/
function post($index = '', $xss_clean = TRUE)
{
    return $this->_fetch_from_array($_POST, $index, $xss_clean);
}

这里唯一的区别是我将 $xss_clean 变量更改为TRUE代替FALSE。现在您可以关闭全局 XSS 过滤,它会自动过滤输入,除非您在调用输入库时指定 false 作为第二个参数post()方法。只有一种方法是get()方法,你可以用同样的方式改变它。

然而,如果我是你,我只会扩展原生库,因为当你更新 CodeIgniter 时,你很可能已经忘记了这一点,然后你会突然想知道为什么你会受到 XSS 攻击。那看起来像这样:

class MY_Input extends CI_Input {

    function My_Input()
    {
        parent::CI_Input();
    }

    function post($index = '', $xss_clean = TRUE)
    {
        return parent::post($index, $xss_clean);
    }
}

您可以在此处了解有关扩展库的更多信息:

http://codeigniter.com/user_guide/general/creating_libraries.html http://codeigniter.com/user_guide/general/creating_libraries.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeigniter - 基于帖子禁用 XSS 过滤 的相关文章