【问题标题】:How to block invalid requests如何阻止无效请求
【发布时间】:2015-01-18 19:57:49
【问题描述】:

我有一个网站,4 年前被病毒感染(!),它在 ASP.NET 社区中创建了许多线程和假用户,例如:/forum/members/Better-Flower-Delivery-Your-Flower-Delivery -c-uj.aspx .

这个网站在 2 年前重新设计,ASP.NET 社区被完全删除,但现在有很多请求被转到我的网站(每 2 小时 300 个这样的虚假请求)!

当然请求者(机器人)得到 HTTP 404,但是发送和发送这样的请求。有能力阻止这些请求吗?我为什么要这样做?

  1. 我使用 Azure。因此,我支付每个传入数据/CPU 时间来处理请求。
  2. 这些请求增加了统计数据,所以,我应该检查一下它是什么。

【问题讨论】:

  • 如果认为这更适合 ServerFault,因为这个问题应该在服务配置级别而不是 asp.net 编程级别解决。
  • 嗯,在 Azure 上怎么做?
  • 这就是我认为 SF 的专业人士能够告诉你的。只需标记您的帖子以引起 mod 注意并要求将其迁移到那里。当然,您可以稍等片刻,看看这里是否能得到答复。

标签: c# asp.net azure statistics http-status-code-404


【解决方案1】:

你可以尝试做这样的事情:

  1. OnBeginRequest 事件,向用户发送一个虚假页面,其中只有一个 html 表单,其中包含在隐藏字段中为该用户生成的一些特殊数字或字符串,页面加载后自动通过 js 将此表单发送回您的服务器。
  2. 在您的服务器上,检查这个生成的号码,如果它对这个用户有效,则生成一个 cookie,通知您的系统这是真正的用户并且有浏览器。

  3. 因此,如果用户拥有您生成的 cookie 和您生成的通行证,您将允许您的服务器处理此请求,如果没有,则拒绝它。

此方法允许您控制系统应处理哪个请求,因为通常机器人不会处理响应。

最好的问候,迪玛。

【讨论】:

  • 添加额外的服务器跃点不会导致负载大幅增加吗?自从So, I pay about each incoming data / CPU time to processing request. 之后,这个税 OP 也不会更多吗?
  • 您将在一段时间内(您生成的cookie有效期间)为用户只执行一次。将 cookie 添加到客户端后,此 cookie 将随每个请求一起传递(此 cookie 将仅包含您的唯一数字或字符串,因此它将是非常小的 cookie),因此您只需检查该 cookie 是否存在,我好的,这个请求可以处理了。当然,您可以测试此解决方案并尽可能优化。但这只是你可以看待的方式,但我希望你能找到更优雅的解决方案来解决你的问题。
  • 我只是一个路人,很好奇——谢谢你的解释;希望对 OP 也有帮助。
猜你喜欢
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多