여기에 언급 된 모든 사람들이 : 사용자는 항상 브라우저에서 사용할 수있는 모든 자산을 다운로드 할 수 있습니다. 사실, 귀하의 페이지를 볼 경우 이미 해당 자산을 다운로드 할 수 있습니다.
어쨌든 당신이 할 수있는 일은 방문자가 이미지의 URL을 무효화하여 이미 2 번 배달 한 이미지를 다운로드하지 못하게하는 것입니다. 은이 서버에 약간의 스크립트를 필요로 :
HTML 페이지를 제공하는 당신이 당신의 페이지에 각 요청에 "보호"할 모든 이미지에 대해 고유 한 토큰을 생성합니다. 이미지 식별자 (예 : 서버의 로컬 경로 또는 데이터베이스의 이미지 표현 ID)와 함께 캐시 (또는 데이터베이스)에 저장합니다. 이미지의 "진짜"URL을 HTML이나 JavaScript에 넣지 말고 다음과 같이 사용하십시오 : <img src="http://yourdomain.com/images/#TOKEN" alt="protected image">
또는 <img src="http://yourdomain.com/images/imageHandler.jpg?requestID=#TOKEN" alt="protected image">
브라우저가 img의 src URL에서 리소스를로드하려고 시도합니다. 서버에서 해당 자원에 대한 요청을 받으면 이미지를 전달하고 즉시 캐시에서 토큰을 제거하십시오. 캐시에서 토큰을 찾을 수 없으면 "이 리소스의 다운로드 토큰이 이미 사용되었습니다"와 같은 오류 페이지를 제공하십시오..
적절한 캐시 제어 헤더 (HTTP/1.1 Header Field Definitions for Cache Control 참조)로 이미지를 전송했는지 확인하십시오. 이렇게하면 브라우저가 이미지를 하드 디스크에 저장하지 못하게해야합니다. (주의 : 브라우저는 항상 사용자를 위해 최상의 성능을 얻으려고 시도하므로 사용하지 마십시오. 그러나 http 표준에 따라 반드시 준수해야하는 헤더이기 때문에 브라우저는 이미지 만 저장합니다 메모리에.)
이 방법은, 바로 오류 페이지로 얻을 것이다 다운로드를 시도 단순히 복사 <img>
의 SRC와 사용자. 브라우저가 이전에 이미지를 다운로드하는 데 이미 사용 했으므로 URL은 더 이상 유효하지 않습니다.
그런데 대부분의 파일 공유 및 온라인 비디오 스트림 서비스가 다운로드 링크를 보호합니다. 요청 및 자원 당 하나의 토큰 만 있으면 자원이 전달되는 즉시 토큰이 제거됩니다. 토큰이 없으면 리소스가없고 리소스의 실제 URL을 공개 할 필요가 없습니다. 실제로 "실제"URL이 필요 없습니다.
여전히 : 이것은 보안상의 문제입니다. 그러나 80 %의 경우 사용자가 이미지를 다운로드하지 못하게됩니다.
브라우저에서 사용할 수있는 모든 자산을 사용자가 사용할 수 있습니다. 그것은 이미지, 스타일 시트, 스크립트 등에 사용됩니다. 누군가 이미지를 다운로드하는 것을 막을 수는 없습니다. –
그들은 열심히 노력하지 않아도됩니다. 브라우저의 개발자 도구를 열고 가져 오기 지시가있는 * 모든 항목의 목록을 제공하는 곳으로 이동하십시오. 브라우저에 지시하기 전에 어떤 점프를해도 상관 없습니다. – Jon