2009-07-02 72 views
5

我最近开始在我的网站上看到诸如Java/1.6.0_14(和变体)的用户代理Java用户代理

这是什么意思。它是浏览器或机器人还是什么

回答

12

这可能意味着某人正在使用Java来抓取您的网站。除非您注意到抓取工具使用大量带宽或不尊重robots.txt文件,否则这并不值得关注。如果您遇到问题,通常合法抓取工具会花时间创建自定义用户代理,以便轻松联系抓取工具,但即使他们使用的是默认用户代理,也可能完全没有问题。但是,如果您注意到来自Java客户端的命中404次命中或批次,那么您可能受到寻找您网站安全漏洞的垃圾邮件发送者的攻击。如果您的网站构建得很好,除了刻录一些带宽外,他们可以做的不多,但是如果他们发现安全漏洞,他们一定会利用它。正确地处理垃圾邮件发送者已经超出了这个答案的范围,但是焦土解决方案(至少可以作为短期解决方案)将阻止包含字符串'java'的所有用户代理。

+0

难道这不能阻止一些android平板电脑等?我的意思是,也许Java版本在UA中,但不一定是因为它们使用Java的UrlConnection。 – 2013-02-13 15:44:14

5

这意味着您的网站正在通过某些机器上的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(); 
     } 

    } 

}