【问题标题】:Is there a need to re-validate information in CodeIgniter forms?是否需要重新验证 CodeIgniter 表单中的信息?
【发布时间】:2013-06-24 15:12:24
【问题描述】:

我不太确定如何为这个问题命名,但是就这样吧。我总是使用 CodeIgntier 的表单验证类来验证我的表单信息。在我的申请中,有其他注册成员使用的表格。例如,如果有人想对博客文章发表评论,他们可以使用该文章的表单。

如果我的控制器是:

类博客扩展 CI_Controller { 功能 postcomment($blog_id){ if($this->form_validation->run('comment') == FALSE){ $this->parser->parse('comment_form.tpl', $data); } 别的 { $this->blog_post->create_comment($blog_id); } } }

我的模型是……

类 Blog_Post 扩展 CI_Model { 函数 create_comment($blog_id){ $数据 = 数组( 'title' => $this->input->post('title'), '内容' => $this->input->post('内容'), '日期' => 时间() ); $this->db->insert('blog_cmets', $data); }

是否需要使用 preg_match、strlen、isset 等在实际插入信息之前对其进行验证?

【问题讨论】:

    标签: security codeigniter validation


    【解决方案1】:

    这取决于您的需求,而 CI 的 form validation 确实提供了 regex,unique,max_length,isset .. etc 验证。

    如果您有任何自定义验证,例如计算或百分比 > 而不是为此输入编号,它还提供 callback 函数来验证总数取决于您的需要

    一些主要的验证规则是

    cascadingrules

    Prepping Data

    callbacks

    这里是你需要通过form_validation的所有东西

    【讨论】:

      【解决方案2】:

      甚至 Codeigniter 也已经实现了安全性。执行以下操作仍然是最佳实践;

      1. 过滤数据,就像它被污染一样。 (使用 xss 过滤)
      2. 验证数据以确保其符合正确的类型、长度、大小等(有时此步骤可以代替第一步)
      3. 在将数据提交到数据库之前对其进行转义。

      我在这里读到了http://ellislab.com/codeigniter/user-guide/general/security.html

      【讨论】:

        【解决方案3】:

        但是如果您之前使用 form_validation 验证 插入post发送的数据

        我应该启用 XSS 吗?

        $this->input->post('any_input', TRUE);

        //campos de la tabla y datos a insertar
                        $dataUsuario = array(
                                    'matr_user'         => 'guest-'.date("whis"),//hora-min-seg-dia
                                    'pass_user'         => $passHash,
                                    'nom_user'          => capitalizar($this->input->post('tx_nom')),
                                    'ap_user'           => capitalizar($this->input->post('tx_ap')),
                                    'am_user'           => capitalizar($this->input->post('tx_am')),
                                    'sex_user'          => $this->input->post('tx_sex'),
                                    'nomfull'           => $nom_completo,
                                    'fnaci_user'        => $this->input->post('tx_naci'),
                                    'curp_user'         => $this->input->post('tx_curp'),
                                    'callenum_user'     => capitalizar($this->input->post('tx_calle')),
                                    'col_user'          => capitalizar($this->input->post('tx_col')),
                                    'cp_user'           => $this->input->post('tx_cp'),
                                    'ciud_user'         => capitalizar($this->input->post('tx_city')),
                                    'estad_user'        => capitalizar($this->input->post('tx_estado')),    
                                    'fech_ins_user'     => $this->fecha_server(),
                                    'time_ins_user'     => $this->hora_server(),
                                    'ip_ins_user'       => $this->ip_usuario(),
                                    'operador_ins_user' => $this->session->userdata('username'),
                                    'fech_upd_user'     => '0000-00-00',
                                    'time_upd_user'     => '00:00:00',
                                    'ip_upd_user'       => '0',
                                    'operador_upd_user' => 'sinuser'
                                );
        
                        //inicia transacciones
                        $this->db->trans_start();
        
                        //insertamos datos
                        //llamamos al metodo del modelo que realiza las inserciones                 
                        $consulta_idUser = $this->usuario->create_usuario($dataUsuario);
        

        【讨论】:

          猜你喜欢
          • 2013-03-17
          • 1970-01-01
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 2018-08-28
          • 1970-01-01
          • 1970-01-01
          • 2018-03-23
          相关资源
          最近更新 更多