用户Web应用程序的安全性

时间:2012-10-01 11:19:56

标签: php database security codeigniter

我一直在想我的应用程序的安全性方面。 我正在为我的项目使用CodeIgniter PHP Framework。

我想知道一些关于此的“专家”意见。 我有一个登录功能。 用户登录时,会话存储在数据库中。我在信息会话中添加了用户ID之类的信息。 用户可以创建公司。但要做到这一点,我首先检查他的帐户,看他是否已经有一个。 此会话用户ID允许我运行数据库请求以找出它。 例如:

function create(){
    $hasCompany = $this->Accountmodel->hasCompany($this->session->userdata('id'));
    if($hasCompany){
        $data['company'] = $this->Companymodel->getCompanyInfo($this->session->userdata('id');
        $this->load->view('company/panel', $data);
    }
    else{
        $this->load->view('company/create');
    }

}

如果他有一个,我可以打印公司编辑/删除面板。 它允许我避免在url中使用id参数,如: myserver.com/company/edit/[id]

所以为了达到这个目的,我想知道,就安全性而言,这是否正常或是否存在某种漏洞。

欢迎任何建议!

2 个答案:

答案 0 :(得分:0)

会话劫持将是一种威胁,在下面的主题中已经解释了如何避免这种情况。

What is the best way to prevent session hijacking?

答案 1 :(得分:0)

如果会话数据存储在数据库 中,会话cookie已加密,则使用会话中的数据非常安全。

会话cookie仅包含会话ID,用户代理和IP地址。此外,会话每5分钟到期一次(默认情况下),所以为了高举会话,有人需要打破cookie加密,将IP和用户代理设置为存储在cookie中的那个,并在5中完成所有这些操作。会话ID更改前的分钟窗口。

这(在我看来)极不可能。

您可能还希望在配置文件中启用跨站点请求伪造(CSRF)选项以提高表单安全性(尽管没有任何内容取代正确的用户数据验证)