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