문제

최근에 내 사이트에서 Java/1.6.0_14 (및 변형)와 같은 사용자 에이전트를보기 시작했습니다.

이것은 무엇을 의미 하는가. 브라우저 또는 봇입니까?

도움이 되었습니까?

해결책

이것은 누군가가 Java를 사용하여 웹 사이트를 크롤링하고 있음을 의미합니다. 크롤러가 대역폭을 많이 사용하거나 robots.txt 파일을 존중하지 않는 한 걱정할 것이 많지 않습니다. 일반적으로 합법적 인 크롤러는 문제가있는 경우 크롤러에 쉽게 연락 할 수 있도록 사용자 정의 사용자 에이전트를 만들기 위해 시간이 걸리지 만 기본 사용자 에이전트를 사용하더라도 완벽하게 양성 할 가능성이 높습니다.

그러나 404 타점에 급상승하거나 많이 Java 클라이언트의 히트 곡 중에서 웹 사이트에서 보안 구멍을 찾는 스패머들의 공격을 받고있을 것입니다. 귀하의 사이트가 잘 구축 된 경우 대역폭의 일부를 태우는 것 외에는 할 수있는 일이 많지 않지만 보안 구멍을 찾으면이를 악용해야합니다. 스패머를 올바르게 다루는 것은이 답변의 범위를 벗어나지 만, 적어도 단기적인 지구 솔루션 (최소한 단기 수정)은 문자열 '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 's HttpURLConnection 클래스는 JVM 버전 정보를 User-Agent 헤더.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top