我为一家负责水费和垃圾收集的当地政府工作。今天我接到一位客户的电话,说一家“纽约公司”打电话给他,要求他提供客户号码和密码,以便他们能够访问他的在线账户,从而从网站上“抓取”他的用水量。他们显然出于某种他记不清的原因从几间公寓收集了这些信息。当然,这让我感到警惕,我告诉他不要把这些信息给他们。我还告诉他,如果他们回电告诉这家公司,他们可以直接联系我们获取这些信息(如果他们需要的话)。
现在,如果我们的一位客户接到了电话,我可以放心地认为其他人也接到了相同或类似的电话,而且他们可能提供了或可能没有提供此信息。我如何检查我们的日志,看看是否有机器人访问我们的网站并截取我们的数据?我也觉得我们应该屏蔽那个机器人,防止进一步的尝试。
注意:网络服务器上存储的唯一信息是客户的姓名和地址、用水量和账单费用以及应付总额。他们也可以支付账单。我们不在线存储任何帐户信息。因此,总体而言,网络服务器上的信息可以被视为公开信息(尽管通过适当的渠道)。
答案1
没有办法检测或阻止仅抓取少量页面的精心编写的机器人——其行为与真正的用户难以区分。
答案2
您可以阻止或限制访问多个帐户的任何单个源 IP 的速率。如上所述,这必须能够知道正在访问多个帐户,并且可能不容易实现。当然,这也可以阻止公寓大楼中将 NAT 互联网作为“公用设施”的租户。
您可以实施 CAPTCHA。
答案3
如果有机器人屏幕抓取您的网站,那么您唯一的迹象就是您的网络服务器日志,而且很难(在最好的情况下)检测到。通常,您在日志中看到机器人的方式是通过用户代理字符串,但这实际上只适用于行为良好的机器人,如搜索爬虫。所有其他恶意程序都会将用户代理字符串设置为与主流浏览器等常见内容相匹配,以隐藏自己。
您很可能正在查看访问特定 URL 的跟踪 IP 地址,这些 URL 可直接与特定客户关联。如果请求是 POST 请求,情况会更加复杂,因为客户特定信息可能位于 POST 数据中,而不是 GET 请求中的 URL 中。
老实说,不幸的是,祝你好运...不确定你是否能够走得很远。
答案4
记录每个访问帐户的 IP。过一段时间后,返回并查询日志,为每个访问的帐户的每个 IP 分配一个点,然后排序以查找访问帐户最多的 IP 地址。
排除一些图书馆等之后,我敢打赌,即使他们访问账户的速度很慢或很少,你也会找到罪魁祸首。如果他们从同一个地方访问账户,一个月后这个问题就会开始显现出来——他们很可能是同一个地方。
其他一些排列组合:首先限制从多个 IP 访问过的帐户——真实用户和抓取者。找到任何一个已知泄露了信息的用户的帐户。