【问题标题】:Providing a feature only once to each unique visitor仅向每个唯一访问者提供一次功能
【发布时间】:2009-03-04 17:07:01
【问题描述】:

我写了一个留言板作为我的第一个 ASP.NET 项目。到目前为止,它似乎运作良好。但是,我拥有的功能之一是每封邮件都有垃圾邮件评级。它只是查看者将邮件标记为垃圾邮件的次数除以查看邮件的总次数。这个想法是允许用户忽略垃圾邮件评级较高的邮件(如果他们选择这样做)。

但是,垃圾邮件发送者只需查看自己的消息并多次刷新,就可以破坏整个系统,这会增加查看消息的次数。连续多次将邮件标记为垃圾邮件的人也可以阻止它。我需要一种方法来确定特定访问者是否已经查看了特定消息,以及确定特定用户是否已经将特定消息标记为垃圾邮件。

我不想要求注册 - 我希望任何人都能够查看或发布消息。我一直在考虑的两个想法是在访问者进入网站时设置 cookie,以便我可以跟踪他们,或者创建一个新的数据表,在用户查看邮件或将其标记为垃圾邮件时记录用户的 IP 地址。其他人能想出更好的方法吗? .NET 是否有任何内置功能可以帮助我确定访问者是否是第一次查看页面?

【问题讨论】:

    标签: c# .net unique visitor-pattern


    【解决方案1】:

    最可靠的措施是 IP 地址过滤,因为垃圾邮件发送者可以通过编写自己的程序来请求页面来规避任何其他方法。它会影响您在 NAT 后面的客户端,但对于垃圾邮件过滤而言,它工作得很好。

    【讨论】:

    • 垃圾邮件发送者还可以欺骗 IP 地址,使 IP 过滤失效。你也会让那些落后于 nat 的人失去信心。
    • 它的可能性要小得多,而且要困难得多。这始终是问题所在。你必须牺牲:) 我见过的任何垃圾邮件过滤机制都有误报。
    • 这是一个供志趣相投的小社区使用的留言板。我预计不会遇到成群结队的用户从同一个 NAT 后面查看相同的消息,所以我认为 IP 选项的效果最好,至少目前是这样。感谢大家的投入。
    【解决方案2】:

    ASP.Net 有一个名为Personalization 的内置功能,可用于检测和记住匿名用户以及普通“注册”用户。

    【讨论】:

    • 我认为这取决于cookie,所以我认为这对场景没有好处
    • 您可以通过多种方式对其进行配置。
    【解决方案3】:

    对于匿名用户,请使用 IP。这会产生误报,特别是对于某些互联网提供商而言,但对于您的场景来说,这似乎是一个不错的权衡。 我也会让用户更容易被识别,open id 是一个很好的方法。

    【讨论】:

    • 我实际上是在考虑让用户选择这个选项。表明自己身份的人会将他们的消息标记为“已验证”,这将允许其他用户在决定认真对待哪些消息时进行更大程度的歧视。感谢您推荐使用 Open ID。
    猜你喜欢
    • 2020-03-22
    • 2015-09-20
    • 2011-04-29
    • 1970-01-01
    • 2012-03-15
    • 2022-06-24
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    相关资源
    最近更新 更多