2017-09-30 82 views
0

我正在使用别人构建的代码。我看到在配置中的xss活动:Codeigniter 3 - XSS Filtering

global_xss_filtering = TRUE 

我也看到这已被弃用。我在输入级还发现:

$this->_enable_xss = (config_item('global_xss_filtering') === TRUE); 
is_bool($xss_clean) OR $xss_clean = $this->_enable_xss; 

这意味着,如果激活配置“global_xss_filtering”,即使我关掉XSS上输入 - >后,它将应用XSS过滤。

这意味着我必须关闭它在配置和使用

$this->securit->xss_clean($this->input->post()) 

我的问题有以下几点:如果应用到$这个 - >输入 - >后(无XSS

  1. '变量'),这是使用它而不是$ _POST的其他优点?

  2. 哪种方法可以在Codeigniter 3中执行XSS过滤?

在此先感谢。

回答

1

哪种方法可以在Codeigniter 3中执行XSS过滤?

目前在开发社区的共识似乎是XSS过滤应该在输出而不是输入。尽管如此,输入和输出过滤器仍然有很强的争论和支持者。

这是一个很大很复杂的话题。找到比你更想知道在

https://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/cross-site-malicious-content.html

https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#Introduction

https://paragonie.com/blog/2015/06/preventing-xss-vulnerabilities-in-php-everything-you-need-know

阅读并理解了这一切后,你可能会发现,防止XSS在输入和输出期间都需要很多思考和工作放。

许多人建议不要使用Codeigniter的XSS功能,而应该选择类似HTML Purifier的东西。

如果没有通过$ this-> input-> post('variable')应用XSS,这是使用它而不是$ _POST的其他优点吗?

使用$this->input->post('variable')的主要优点是,它会检查指数(“变量”)在$_POST存在。要使用$_POST直接你真的应该确保阵列具有指标。

if(isset($_POST['variable']) 
{ 
    // do stuff with $_POST['variable'] 
    ... 
} 

如果没有isset测试,运行时会出现致命的运行时错误。因此,使用$this->input->post('variable')删除的不断构建if

1

在项目http://conferience.com,我之前的2年中,我们使用(d)合作,html purifier防止XSS atacks乏味。另外,当需要明文输入时,我们只需使用php的本地strip_tags方法对任何html字符串进行分条。

因此,我们设置下列设置:

$ global_xss_filtering = FALSE

,并用于上$_POST['something']/$this->input->post('something')输入人工处理。