首页 文章

是否需要重新验证CodeIgniter表单中的信息?

提问于
浏览
0

真的不确定如何 Headers 这个问题,但在这里它 . 我总是使用CodeIgntier的表单验证类来验证我的表单信息 . 在我的应用程序中,有一些表单被其他注册的成员使用 . 例如,如果有人想在博客文章上发表评论,他们会使用该文章的表单 .

如果我的控制器是:

class Blog extends CI_Controller {

     function postcomment($blog_id){

          if($this->form_validation->run('comment') == FALSE){

               $this->parser->parse('comment_form.tpl', $data);

          } else {

               $this->blog_post->create_comment($blog_id);

          }

     }

}

我的模特是......

class Blog_Post extends CI_Model {

     function create_comment($blog_id){

         $data = array(
               'title' => $this->input->post('title'),
               'content' => $this->input->post('content'),
               'date' => time()
              );

          $this->db->insert('blog_comments', $data);

     }

是否需要使用preg_match,strlen,isset等来在信息实际插入之前验证信息?

3 回答

  • 0

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

    如果您有任何自定义验证,如计算或百分比>输入no.s为此,它还提供 callback 函数来验证总数取决于您的需求

    一些主要的验证规则是

    cascadingrules

    Prepping Data

    callbacks

    以下是您需要经历的所有内容form_validation

  • 0

    甚至Codeigniter已经实现了安全性 . 实施以下内容是最佳做法;

    • 过滤数据,就像它被污染一样 . (使用xss过滤)

    • 验证数据以确保其符合正确的类型,长度,大小等(有时此步骤可替换步骤1)

    • 在将数据提交到数据库之前转义数据 .

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

  • 0

    但是如果你之前使用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);
    

相关问题