如何防止CodeIgniter 3

时间:2017-01-30 15:35:12

标签: php codeigniter security session authentication

我知道这是一个重复的问题Codeigniter/PHP sessions security question,但很抱歉告诉我推荐的所有措施都失败了,这就是为什么我要重复这个问题并在2011年问到这个问题,现在答案是过时。所以请不要复制它。

在我的场景中我启用了 配置文件中有$config['sess_driver'] = 'database';$config['sess_match_ip'] = TRUE;

我还在我的身份验证表单中放入了csrf令牌和XSS过滤,并始终使用活动记录来阻止任何类型的SQL注入。为了更加安全,我还在第10次尝试时实施了双因素身份验证,Google ReCaptcha和ip阻止。尽管如此,上述所有措施都只能防止暴力攻击,而不是会话劫持。

如果攻击者获得了ci_session值并且我的ip可以轻松登录我的网站而无需任何登录凭据。

我知道使用HTTPS可以提供​​帮助,因为我可以启用$config['cookie_secure']=TRUE;,但我不是百分之百确定它,因为我可以轻松登录我的Twitter帐户我做会话劫持和Twitter使用HTTPS。

我也试过了我的laravel应用程序,它的默认中间件身份验证系统可以被会话劫持。

所以基本问题是我在会话中的所有身份验证工作,并且我不知道任何其他方法在不使用会话的情况下使用身份验证。

如果有人知道如何提高我的网络应用程序的安全性,请帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

防止会话固定意味着防止会话ID被盗。

您只有才会失败,如果有办法让它被盗。担心之后发生的事情毫无意义。

  

如果攻击者获得了ci_session值并且我的ip可以轻松登录我的网站而无需任何登录凭据。

没人能改变你的IP地址......

答案 1 :(得分:1)

您可以在会话中保存访问者信息,如OS平台和浏览器,并在每次加载页面时对其进行比较。

CI有一个用户代理库可以帮助解决这个问题。

还创建一个cookie,在每次加载页面时更改值,并在每次加载页面时将旧值保存在会话中。比较每个请求。比较所有内容,包括旧会话ID和与此cookie一起使用的旧自定义密钥。

CI有一个帮助这个的Cookie助手。

在短时间内重新生成您的会话ID。

如果任何比较数据不正确,您可以注销该用户。销毁会话并删除co​​okie。如有必要,请显示有关此问题的警报。

这可以防止有人从您的网络中获取您的会话ID。社会工程师要谨慎。

我正在搜索同样的问题。