Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter中基于成员的站点安全问题_Php_Codeigniter - Fatal编程技术网

Php codeigniter中基于成员的站点安全问题

Php codeigniter中基于成员的站点安全问题,php,codeigniter,Php,Codeigniter,嗨,朋友们,我只是想知道当我的网站上的用户使用表单发布任何东西时,我应该记住什么安全性。我对codeigniter会话进行了加密,还启用了将会话存储在数据库中的功能,我的示例模型函数如下所示。我已经在全球范围内启用了表单验证并启用了xss和csrf 我认为sql注入是由CI的活动记录功能自动处理的。请建议我在制作此网站之前还需要检查哪些内容。谢谢 function AddSomeMemberPost(){ $now = date('Y-m-d H

嗨,朋友们,我只是想知道当我的网站上的用户使用表单发布任何东西时,我应该记住什么安全性。我对codeigniter会话进行了加密,还启用了将会话存储在数据库中的功能,我的示例模型函数如下所示。我已经在全球范围内启用了表单验证并启用了xss和csrf

我认为sql注入是由CI的活动记录功能自动处理的。请建议我在制作此网站之前还需要检查哪些内容。谢谢

        function AddSomeMemberPost(){

                $now = date('Y-m-d H:i:s', strtotime('now'));

        $data = array(
            'topic' => $this->input->post('title'),
            'status' => 'draft',
            'content' => $this->input->post('body'),
            'category_id' => $this->input->post('categoryid'),
            'featured' => '0',
            'lang' => $this->input->post('lang'),
                    'pubdate' => $now,
                    'video' => $this->input->post('tube_video'),
                    'user_id' => $this->session->userdata('user_id'),
                    'username' => $this->session->userdata('username')
        );

$this->db->insert('my_table', $data);
验证是这样完成的,顺便问一下,我是否需要验证会话数据?它正在通过模型

$this->form_validation->set_rules('topic', 'Topic', 'required|min_length[8]|max_length[90]');
            $this->form_validation->set_rules('content', 'Content', 'required|min_length[8]');
            $this->form_validation->set_rules('tags', 'Tag', 'required|miax_length[50]');
            $this->form_validation->set_rules('video', 'Youtube Video Link', 'min_length[8]');

建议您更改PHP错误报告级别,该级别在main/index.PHP文件中设置

error_reporting(0)
注意:您可以改为在钩子中设置,这样就可以保持标准CI文件不变

通常,在将所有数据放入任何SQL(包括会话中使用的数据)之前,应该清除所有数据,即使在使用内置的CI DB函数时也是如此。例如,在将数字添加到SQL之前,应该始终强制转换数字

$val = (int)$val;

(注意:为了提高性能,在尝试运行查询之前,您可以检查这些值是否在有效范围内,以避免运行您知道将不会返回任何结果的查询。例如,如果您正在搜索一个正整数的值,那么如果$val我们看不到您的验证,则不需要运行查询,因此很难给出正确答案。)dvicesadded验证请检查编辑的主题。您还可以添加回调,以便对表单post字段进行某些正则表达式验证,如所述