当用户预期POST时,“用户”向网站发送GET请求

时间:2011-04-20 10:43:56

标签: search browser bots

我一直在日志中看到奇怪的行为,其中通常只能通过POST请求访问的URL通过GET调用。 URL包括仅通过javascript构建的URL,因此您不会期望常规蜘蛛会遇到它们。如果我在日志中搜索那些请求来自的IP,那么用户似乎只向我们发送了GET请求。

它似乎不像典型的机器人行为 - 请求被分散,而不是在短时间内通过一堆请求向我们的服务器发送垃圾邮件。用户代理都是常规浏览器。然而 - 这有点推测 - 它看起来并不像是一个人在浏览网站,因为他们似乎跳到了一个地方,而不是跟随一个链接到下一个。

有没有其他人在他们的网站上看到这种行为?是什么原因引起的?

3 个答案:

答案 0 :(得分:9)

可能有人在您的网站上捕获漏洞。他们会分析您的表单,然后制作自己的URL,寻找弱点或使用该服务的非常规方式。如果它通常是相同的IP地址,那么你可能会认为是这种情况。

一个例子可能是您是流媒体提供商,有人试图将视频下载程序脚本的源URL拼凑在一起。通常,只是垃圾邮件发送者希望通过您的联系表单进行转发。

不要假设IP地址和用户代理太多。前者可以代理(通过像Tor这样的网络),后者可以随意更改。仅仅因为IP和用户代理更改并不意味着它不是生成请求的同一用户。

答案 1 :(得分:7)

我经常搜索网站以获取信息,当我真的很懒,我会以GET而不是POST提交所有内容...很多时候,需要{{1}的CGI 1}}将接受POST。我将我的脚本设置为使用列表中的随机GET:ipad上的safari,XP上的firefox或Vista上的Internet Exploder。

谁知道,可能是我抓取你的网站,获得答案的分数; - )。

答案 2 :(得分:4)

只是猜测:

  • 有一种叫做“web accelerator”的东西,一个预取链接的浏览器插件,所以当你决定点击一个时,它已经被缓存了。它不应该缓存看起来像查询的东西,但也许有些人会检测到您的URL适合预取。由于它在浏览器中运行,它至少会看到javascript添加到文档中的所有URL(通过document.write或DOM访问)。

  • “Web加速器”也可以作为Web代理的一部分实现。它似乎不太可能,因为它必须解释javascript,但如果URL完整地出现在javascript中,它可能只是为任何看起来像URL并且可能找到它们的任何文本。

这可以解释为什么请求被分散(每次真实用户访问网站时会发出一些请求),为什么用户代理字符串对应于实际的浏览器(如果它是浏览器插件,它使用它的用户)代理字符串)以及为什么他们跳到那里(他们同时尝试预取几个链接,并且可能是启发式选择它应该是哪个不适合你的网站)。