希望有人能帮我解释一下我的一些问题:
确定GET,POST或时XSS过滤器是否始终处于活动状态 遇到COOKIE数据。
$ config [' global_xss_filtering'] = TRUE;
因此,如果我设置默认值为FALSE。我会得到什么好处?例如,服务器的性能或处理速度?
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);
}
我不相信用户。我仍然不太了解:会话活动
希望有人帮助我,因为我只使用Codeigniter的XSS过滤器。感谢
答案 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}}这是不必要的。