我一直在想我的应用程序的安全性方面。 我正在为我的项目使用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]
所以为了达到这个目的,我想知道,就安全性而言,这是否正常或是否存在某种漏洞。
欢迎任何建议!
答案 0 :(得分:0)
会话劫持将是一种威胁,在下面的主题中已经解释了如何避免这种情况。
答案 1 :(得分:0)
如果会话数据存储在数据库 和 中,会话cookie已加密,则使用会话中的数据非常安全。
会话cookie仅包含会话ID,用户代理和IP地址。此外,会话每5分钟到期一次(默认情况下),所以为了高举会话,有人需要打破cookie加密,将IP和用户代理设置为存储在cookie中的那个,并在5中完成所有这些操作。会话ID更改前的分钟窗口。
这(在我看来)极不可能。
您可能还希望在配置文件中启用跨站点请求伪造(CSRF)选项以提高表单安全性(尽管没有任何内容取代正确的用户数据验证)