阻止用户在Rails中共享会话cookie的最佳方法是什么?
我认为我有一个很好的方法可以做到这一点,但我想通过堆栈溢出人群来运行它,看看是否有一个更简单的方法.
基本上我想检测是否有人试图与他人分享付费会员资格.用户已经在登录时进行筛选,以便从太多不同的子网登录,但有些人试图通过共享会话cookie来解决此问题.如果不将会话与IP绑定(许多合法人员使用旋转代理),最好的方法是什么.
我发现的最佳启发式是B类子网/时间#(某些ISP在不同的C类上使用旋转代理).这为我们产生了最少的误报,所以我想坚持这种方法.
现在我正在考虑为每个请求应用一个前置过滤器,用于跟踪用户在memcached中使用的子网和session_ids,并将启发式应用于该过滤器以确定cookie是否正在共享.
任何更简单/更容易实现的想法?任何现有的插件都这样做?
最佳答案 您可以将会话信息绑定到浏览器信息.如果人们在特定时间段内从3种或4种不同的浏览器类型进入,您可以推断可能存在可疑的内容.
另一种答案依赖于一点社会工程.如果您有一些您信任的启发式方法,则可以警告用户(在页面顶部)您怀疑他们正在共享他们的帐户并且他们正在密切关注.警告中的“联系我们”链接将允许合法用户自我解释(因此被永久地取消标记).这可以最大限度地减少问题,使其脱离你的雷达.