0

我知道 stackoverflow 不是发布这个问题的正确位置,但我已经在 serverfault 上发布了这个问题,而且这个地方似乎已经死了。

--

我注意到我的 IIS (7.5) 日志中有奇怪的日志条目(除非有我不明白的东西)。

这是一个带有请求的在线词典(用户友好的 url 重写),其中大多数是 GET。但是我注意到一个试图抓取我们内容的人正在发出奇怪的 POST 请求(数以万计的此类请求)

2013-11-09 20:39:27 GET /dict/mylang/word1 - y.y.y.y Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - 200 296
2013-11-09 20:39:29 GET /dict/mylang/word2 - z.z.z.z Mozilla/5.0+(iPhone;+CPU+iPhone+OS+6_0+like+Mac+OS+X)+AppleWebKit/536.26+(KHTML,+like+Gecko)+Version/6.0+Mobile/10A5376e+Safari/8536.25+(compatible;+Googlebot-Mobile/2.1;++http://www.google.com/bot.html) - 200 468

2013-11-09 20:39:29 POST /dict/mylang/word3 - x.x.x.x - - 200 2593

前两个请求是合法的。现在对于第三个请求,我认为我不允许跨域 POST。如果这是第三条日志行的意思。

所有这些 POST 请求都因我未知的原因而花费了这么多时间。我想知道这些 POST 请求是如何可能的以及如何阻止它们。

ps我故意屏蔽了IP。

任何帮助,将不胜感激!先感谢您。

阻止 POST 通常不是一种选择,我广泛使用 AJAX。我想知道他是如何执行这种 POST 请求以及如何阻止他的。我有数以万计的请求,我经常通过防火墙禁止 IP 范围,但他只是通过代理跳跃。

这就是正常的 POST 请求(通过 ajax 发生)的方式:

2013-11-10 10:16:54 POST /dict/mylang/displaySem.php - 85.73.156.122 Mozilla/5.0+(Windows+NT+6.1;+rv:25.0)+Gecko/20100101+Firefox/25.0 http://www.mydomain.com/dict/mylang/randomword 200 171
4

1 回答 1

1

Http 允许任何人向您的站点发布请求。您的应用程序(不是 IIS)应该在开始长处理算法之前检查它是否是一个有效的请求。

一些常见的验证方法是:

于 2013-11-10T11:46:38.547 回答