2016-07-16 5 views
0

이미지를 공용 디렉토리에 업로드하고 있는데 사용자가 wget을 사용하여 전체를 다운로드하지 못하도록하고 싶습니다. 이것을 할 수있는 방법이 있습니까?wget을 거부하는 방법?

내가 알 수있는 한, 반드시 있어야합니다. 공개 된 브라우저로 하나의 이미지를 다운로드 할 수있는 여러 사이트를 찾았습니다. 그러나 해당 사이트에 대해 wget을 실행하는 즉시 403 (금지됨)이 표시됩니다. no-robot 인수를 사용하여 시도했지만 아직 다운로드 할 수 없습니다. (나는 보안상의 이유로 여기에 사이트의 이름을 짓지 않을 것이다).

+0

당신이 nginx에 있다면, 내가 잘못하지 않았다면 폴더에 대한 접근을 제한 할 수 있습니다. 아파치에서 이것은 도움이 될 수 있습니다 : https://httpd.apache.org/docs/trunk/mod/mod_ratelimit.html - 또 다른 옵션은 다시 쓰기 규칙을 작성하고 직접 액세스를 차단하고 PHP 세션 및 ip adres를 사용하여 액세스를 제어하는 ​​것입니다. 이것은 긴 총일 수 있습니다. – Nitin

답변

2

사용자 에이전트 문자열을 사용하여 액세스를 제한 할 수 있습니다 (예 : apache 2.4 mod_authz_core). Wget은 기본적으로 robots.txt 지시어도 준수합니다. 이것은 일반 사용자를 회개해야합니다.

그러나 wget 설명서를주의 깊게 살펴보면 이러한 제한 사항을 무시할 수 있습니다. 또한 Wget은 요청간에 임의의 지연을 추가 할 수 있으므로 액세스 패턴 분석을 기반으로 한 고급 기술조차 무시 될 수 있습니다.

올바른 방법은 wget 링크/참조 인식 엔진을 사용하는 것입니다. 즉, 미러링하지 않으려는 콘텐츠는 자바 스크립트를 사용하여 동적으로로드해야하며 URL은 js 코드를 디코딩해야하는 방식으로 인코딩해야합니다. 이렇게하면 콘텐츠를 보호 할 수는 있지만 Google 로봇과 같이 사이트 색인을 생성하려는 웹 로봇의 불투명 버전을 수동으로 제공해야합니다 (아니요, 신경 쓰지 않아도됩니다). 또한 일부 사람들은 기본적으로 js 스크립트를 실행하지 않습니다 (밀교 브라우저, 로우 엔드 시스템, 모바일 장치는 이러한 정책을 요구할 수 있음).

관련 문제