我最近开始在我的网站上看到像 Java/1.6.0_14(和变体)这样的用户代理
这是什么意思。是浏览器还是机器人还是什么
这可能意味着有人正在使用 Java 抓取您的网站。除非您注意到爬虫使用大量带宽或不尊重您的 robots.txt 文件,否则这没什么好担心的。通常合法的爬虫会花时间创建自定义用户代理,以便在遇到问题时轻松联系爬虫,但即使他们使用默认用户代理,它也很可能是完全良性的。
但是,如果您确实注意到来自 Java 客户端的 404 次点击或大量点击,您很可能会受到垃圾邮件发送者的攻击,这些垃圾邮件发送者会在您的网站中寻找安全漏洞。如果您的站点构建良好,那么除了消耗您的一些带宽之外,他们无能为力,但如果他们发现了安全漏洞,他们肯定会利用它。正确处理垃圾邮件发送者超出了此答案的范围,但焦土解决方案(至少可以作为短期修复)将阻止所有包含字符串“java”的用户代理。
这意味着您的站点正在通过某人机器上的 JVM 访问。它可能是爬虫,也可能只是抓取数据的人。您可以使用HttpURLConnection类复制用户代理字符串。这是一个示例:
import java.net.*;
public class Request {
public static void main(String[] args) {
try {
URL url=new URL("http://google.ca");
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.connect();
System.out.println(con.getResponseCode());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java 的HttpURLConnection
类将 JVM 版本信息作为User-Agent
标头发送。