我们认为Stack Overflow不仅应该是非常具体的技术问题的资源,而且还应该是关于如何解决常见问题变化的一般指导原则."基于表单的网站身份验证"应该是这种实验的一个很好的主题.
首先,一点背景:我正在为CodeIgniter实现一个auth + auth系统并不是什么秘密,到目前为止我赢了(可以这么说).但是我遇到了一个非常重要的挑战(大多数auth库完全错过了,但我坚持正确处理它):如何智能地处理大规模,分布式,可变用户名的暴力攻击.
我知道所有常用的技巧:
现在,这些只是理论上可行的想法.有很多垃圾想法可以打开网站(比如琐碎的DoS攻击).我想要的是更好的东西.更好的是,我的意思是:
它必须安全(+)抵御DoS和暴力攻击,并且不会引入任何新的漏洞,这些漏洞可能会让稍微狡猾的机器人继续在雷达下运行
它必须是自动化的.如果需要人工操作员验证每次登录或监控可疑活动,那么它无法在真实场景中运行
它必须适用于主流网络使用(即可由非程序员执行的高流失率,高流量和开放式注册)
它不会妨碍用户体验到临时用户会感到烦恼或沮丧(并可能放弃网站)
它不能涉及小猫,除非它们真的是非常安全的小猫
(+)'安全',我的意思是至少和偏执的用户保密密码一样安全
所以 - 让我们听听吧!你会怎么做?你知道我没有提到过的最佳实践(哦,请你说)吗?我承认我对自己有所了解(结合3和4的想法),但我会让真正的专家在让自己尴尬之前说话;-)
使用新的Codeigniter 3.0版本,您使用哪些身份验证库?
ci_sessions
模式,我看到它有很多工作需要重写所有使用会话的代码部分.它似乎适用于文件会话和其代码的一些更改.那么,是否有人在大型CI 3.0 Web应用程序上成功集成(或迁移)了前面提到的任何库?你自己写的吗?你是否坚持使用CI 2直到进一步的CI 3.0开发?
这篇关于 codeigniter中的身份验证库的帖子非常受欢迎且非常有用.我认为,至少在一些有用的答案之前,不应该关闭以这种方式帮助社区的帖子.它之前没有讨论过,我真的希望看到更有经验的开发人员的意见.
我读到关于这个论点许多老问题,我认为最好的做法是设置了一个cookie username
,user_id
并随机令牌.
在创建cookie时,相同cookie的数据存储在DB中,当用户拥有cookie时,它们将被比较(cookie数据,DB数据).
如果这是真正的最佳实践,我真的无法理解安全逻辑在哪里.
窃取cookie的攻击者与原始用户具有相同的cookie:|
忘了一步?:P
我一直在读这个问题,觉得我不太同意这个说法Separation of user and profile data is a nice touch
.
在我看来,分析数据,例如国家或属于用户对象的任何东西,同时将这些数据分成简档导致创建与用户对象具有1对1关系的新对象(和表).仅仅因为美学原因,这种分离是否被认为是一种好的做法?(您只能在一个表中看到用户输入数据,而在另一个表中看到生成的数据)
我正在使用CodeIgniter中的一个应用程序,我希望在应用程序中有几个对象的管理页面,我想知道将这些应用程序放入MVC结构的更好方法是什么.
想法1:
在每个控制器中,有一个管理功能,并将我想要的所有管理页面添加到该功能中.示例网址:domain.com/articles/admin
想法2创建
一个新的管理控制器,它必须引用许多不同的模型,并将所有管理页面放在那里.示例网址:domain.com/admin/articles
哪种方式会更好?
编辑以供说明:通过管理功能,我的意思是能够对任何对象执行基本的CRUD操作,并能够显示所有所述对象的列表.
我可以在哪里放置我的"全局"功能,如果用户已登录,它将检查?
因为我想做类似的事情:用户只有在函数isLogged()
返回TRUE 时才能浏览某些页面,并且我必须在某些视图中使用它,这就是为什么它应该是一个"全局"函数,我可以从任何地方.
那可能吗?或者有更好的解决方案吗?
我是codeigniter的新手,但我对基础知识非常清楚.我实际上是从我的新Web应用程序(CMS)开始的.
我想知道用于为管理面板(后端)创建具有codeigniter的登录系统的最佳方法.
此致,Mrinal Purohit
如何实现ACL库?将ACL用于用户角色的最佳方法是什么?在标准PHP中,我会编写如下代码:
if (userTypeId == 'Admin') {
hello Admin
} else if (userTypeId == 'Member') {
hello member
}
Run Code Online (Sandbox Code Playgroud)
你会如何使用CodeIgniter做到这一点?