用于自适应身份验证的 C# 代码

发布于 2024-09-19 00:31:51 字数 1539 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离旧人 2024-09-26 00:31:51

我认为最好的选择是结合一些现有的非侵入性技术和工具来处理实际的机器人/垃圾邮件检测。识别出可能的风险后,您可以提示访问者进行验证码验证,然后再继续。

我不知道有什么开箱即用的验证码解决方案可以根据某些标准自动显示。这可能是因为“机器人”或“垃圾邮件”的定义在很大程度上是主观的,并且总是在变化。此外,大多数现代机器人都可以毫无问题地将自己识别为普通的用户代理。

也就是说,如果您最终不得不“自己动手”,如果满足以下任一条件,我建议显示验证码:

  • HttpContext.Current.Request.Browser.Crawler 返回 true
  • Akismet (http 的正匹配
  • ://akismetapi.codeplex.com/) 返回任何输入文本A HoneyPot 返回正匹配
  • 过多的锤击(计算会话中的回发和/或 page_loads)
  • 过多的登录尝试
  • NoBot 返回正匹配

希望这有帮助

I think your best bet would be to combine some of the non-obtrusive techniques and tools already available to handle the actual bot/spam detection. After you identify a possible risk, you can then prompt your visitor for a CAPTCHA validation before proceeding.

I do not know of an out-of-box CAPTCHA solution that will display itself based on certain criteria. This could be because what defines a 'bot' or 'spam' is largely subjective and is always changing. Furthermore, most modern bots have no problem identifying themselves as your garden-variety user agent.

That said, if you end up having to "roll your own", I would recommend showing the CAPTCHA if any of the following are true:

  • HttpContext.Current.Request.Browser.Crawler returns true
  • Akismet (http://akismetapi.codeplex.com/) returns a positive match for any input text
  • A HoneyPot returns a positive match
  • Excessive hammering (count postbacks and/or page_loads in Session)
  • Excessive sign-in attempts
  • NoBot returns a positive match

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文