设置默认的全局XSS过滤器 - 会话 - CodeIgniter 3x

时间:2017-03-10 20:03:37

标签: codeigniter-3

希望有人能帮我解释一下我的一些问题:

1。当我设置application / config / config.php:

  

确定GET,POST或时XSS过滤器是否始终处于活动状态   遇到COOKIE数据。

     

$ config [' global_xss_filtering'] = TRUE;

因此,如果我设置默认值为FALSE。我会得到什么好处?例如,服务器的性能或处理速度?

2。会话

function save(){    
    $data = $this->input->post('number',TRUE);
    $this->session->set_userdata('TEST',$data);
}
//Suppose Client request GET to action
function insert(){
    $num = $this->session->userdata('TEST');
    //Do I need to filter data in session?    
    $num_clean = $this->security->xss_clean($num );    
    $this->model->run_insert($num_clean);
}

我不相信用户。我仍然不太了解:会话活动

  • 服务器只是将ID Session发送给客户端。服务器是否将我设置的会话数据发送给客户端?
  • 最佳方式xss_clean for session我正在使用的是:通过xss_clean输入类过滤客户端数据。够了吗?需要重新过滤会话吗?

希望有人帮助我,因为我只使用Codeigniter的XSS过滤器。感谢

1 个答案:

答案 0 :(得分:0)

第1部分:

来自CodeIgniter用户指南2.2.6版

  

XSS过滤

     

CodeIgniter附带了一个Cross Site Scripting Hack预防过滤器,它可以自动运行以过滤遇到的所有POST和COOKIE数据,也可以基于每个项目运行它。默认情况下,它不会全局运行,因为它需要一些处理开销,因为在所有情况下您可能都不需要它。   它不应该用于一般的运行时处理,因为它需要相当大的处理开销。

所以回答你问题的第一部分:是的
 设置 $num_clean = $this->security->xss_clean($num ); 具有性能优势。同样在codeigniter 3中,此功能已弃用。所以我更喜欢把它设置为假。

第2部分:

会话与cookie不同 与cookie不同,信息不存储在用户计算机上。因此,当您存储会话时,可以安全地信任会话数据。

会话数据存储在服务器中。大多数会话在用户的计算机上设置用户密钥,如下所示:765487cf34ert8dede5a562e4f3a7e12。然后,当在另一个页面上打开会话时,它会扫描计算机以查找用户密钥。如果匹配,则访问该会话,如果没有,则启动新会话。

这是一个简单的会话阅读指南https://www.w3schools.com/php/php_sessions.asp 详细说明:http://php.net/manual/en/intro.session.php

简而言之{{1}}这是不必要的。