如何阻止用户共享同一个帐户? (ASP.NET MVC)

时间:2009-05-12 07:17:47

标签: c# asp.net-mvc security

我有一个订阅网站(每月收费),我想阻止用户分享帐户,以避免支付月费。

有没有办法可以做到这一点?

干杯,

麦克

6 个答案:

答案 0 :(得分:5)

使用IP的方法并不合适,因为有些用户使用相同的外部IP来浏览网页。但在某些情况下,这是一种合适的方法(例如,在Intranet Web应用程序中)。 您可以监控同一登录的concurent会话数。一种方法是在同一登录时存在多于1个concurent会话时进行记录。比你可以分析日志。 根据这些数据,您可以采取一些措施。祝你好运。

答案 1 :(得分:2)

记录帐户的IP地址。如果它变化很快,我认为可以安全地假设该帐户被多人使用。

答案 2 :(得分:2)

没有办法明确这样做。但是,您可以在顶部添加一层身份验证,向他们询问某些形式的安全问题,如出生日期,出生地等等。

我会更不愿意向一群人提供这些信息!

答案 3 :(得分:1)

不幸的是,你在这里几乎没有运气。你可以在这里采取的唯一潜在途径是检查IP地址,但这对于这种机制来说非常不可靠。

答案 4 :(得分:1)

您是否试图阻止多个人同时或在不同时间使用同一个帐户?

您可以通过在用户会话中存储GUID并根据您在Cookie中设置的值对其进行检查来停止前者。没问题。

你无法可靠地阻止后者。存储IP将在一定程度上起作用,但大多数家庭用户经常被分配新的IP(如之前的另一个评论所述)。您可以使用IP - >位置并检查位置是否经常变化。

不幸的是,精明的用户也会使用代理服务器来打败这种机制。

答案 5 :(得分:0)

我没有听说有人这样做,所以我们必须思考并想出一些东西。

使用帐户ID和活动时间戳记录IP地址。寻找一个Web服务,告诉您IP的来源。在不同的IP上查找来自同一帐户的连接。

例如,如果我在同一个IP上有2个并发会话,则无法确定。也许我同时打开Firefox和Chrome。

如果我有2个不同IP的并发会话,那么你肯定我正在分享账户(如果这种情况经常发生)。

如果我在整个星期使用几种不同的IP,你无法分辨,因为我在访问时可以使用不同的计算机,或者使用朋友的互联网连接。即使IP位于不同的国家。

因此,我建议记录IP地址,查找位置服务,并测试从实时数据编写的规则。