Web applications 一些web服务如何识别I';我从新位置登录?
我注意到一些web服务(即Steam、Facebook、Google等)能够检测到新的浏览器/新位置,在某些情况下,需要我通过电子邮件代码对其进行验证 他们是怎么做到的?他们用饼干吗?还有别的办法吗?这有多可靠Web applications 一些web服务如何识别I';我从新位置登录?,web-applications,geolocation,ip-address,ip-geolocation,Web Applications,Geolocation,Ip Address,Ip Geolocation,我注意到一些web服务(即Steam、Facebook、Google等)能够检测到新的浏览器/新位置,在某些情况下,需要我通过电子邮件代码对其进行验证 他们是怎么做到的?他们用饼干吗?还有别的办法吗?这有多可靠 如何检测用户是否从其“正常”环境登录,无论是同一浏览器、同一台计算机还是同一大致位置?以下是您可能感兴趣的一些想法 正如我已经告诉你的,这不是一门精确的科学。你应该先把重要的东西放在安全上,然后考虑所有这些“可选”< /P> 另外,请记住,所有建议的“持续时间”都是主观的,取决于访问您的
如何检测用户是否从其“正常”环境登录,无论是同一浏览器、同一台计算机还是同一大致位置?以下是您可能感兴趣的一些想法 正如我已经告诉你的,这不是一门精确的科学。你应该先把重要的东西放在安全上,然后考虑所有这些“可选”< /P> 另外,请记住,所有建议的“持续时间”都是主观的,取决于访问您的站点的狂热程度以及设备的检测强度
以下是有助于识别设备的因素: 访问cookie(个) 首先,
访问令牌cookie
可能不一定与设备id cookie
不同,事实上,访问令牌可用于唯一标识浏览器,即使令牌字符串经常更新:1会话=1设备
相反,如果你想考虑两个或多个浏览器相同的设备,你当然应该使用两个不同的cookies。1台设备=chrome上的1个会话+firefox上的1个会话,等等
第二,cookie应该“永不”过期(将其设置为在几年内到期)。 如果您想终止“记住我”的持续时间,您应该只在代码中执行。 这是因为“永不”过期的cookie实际上与过期的会话相关联,因此识别用户正在使用的设备仍然很有用强> 此外,当用户注销时,不要在代码中删除cookie,在内部销毁会话 知识产权 如何登录IP? 每次用户将IP更改为你认为有效的IP时,你应该登录它。 这意味着您需要一个表来记录所有IPsessionID | IP | lastActionDateTime |[其他因素]+
。如果已经存在包含deviceID和IP组合的行,并且例如在12-24小时内创建了lastActionDateTime
,则将更新lastActionDT
,否则应创建新行。除非其他因素发生变化,否则这是不可能的
如何检查更改的IP是否有效?
使用GEOIP数据库,您可以获得用户的位置:这甚至不太可靠,
但是,您可以使用Google Maps API来检查最后一个已知位置和与IP关联的新位置之间的距离,或者如果GEOIP数据库已经给您提供了LAT、LONG值,您可以简单地计算两点之间的距离
(…我实际上没有检查,但应该没问题)。
所以,假设你可以考虑一个有效的IP,它距离最后一个已知的位置是100-500公里。
IP何时改变?
- 使用3G IP时,即使走了一些步骤,也可能会发生变化,因此,如果您使用不同的IP重新访问页面视图,并且最近使用的前一个页面视图是使用相同的IP创建的, 你必须考虑IP是有效的,因为它是有效的,只是在几分钟之前(<代码> LaStActoDunt<代码>),当然也相应于其他因素的状态,它应该与最后已知的相同。
- 如果在长时间不活动后检测到IP发生更改,则应请求使用表单再次登录。此处会话已过期,但cookie仍然存在且可用,因此如果表单凭据有效,您将续订
过期,而不是创建新的deviceID
deviceID
- 用户可能使用了用户代理交换机
- 用户在同一台计算机上的另一个浏览器上导入了首选项(包括cookie)
- 会话cookie被盗
如果您想在同一台计算机上使用相同的“设备”,可以使用JavaScript两个浏览器(当然,由于这是客户端检查,因此安全性不可靠,但仍有帮助……例如,如果有人窃取会话cookie,他可能不知道他需要伪造这些值,您将使用这些值进行额外检查:-P)。无论如何,
window.screen
包含这些属性,这些属性对于唯一标识操作系统/计算机非常有用
和window.screen.availWidth
window.screen.availHeight
和window.screen.availLeft
window.screen.availTop
和window.screen.width
window.screen.height
窗口、屏幕、方向)
(额外)地理定位API
可以使用HTML5地理定位API进行另一项附加检查(当然也有,因为它是客户端的,所以安全性不可靠,但如果使用它会很有帮助)
与之前的因素合作)
希望能对你有所帮助
韦斯
免责声明:我与Steam没有任何关系
他们用饼干吗
或许,您可以通过网络嗅探器找到答案。请参阅: