사실 흔하게 쓰는 방식이기도 한데
이미지 파일을 데이터화해서, 데이터를 브라우저에 전송하는 방식인데요.
말하자면 BLOB으로 데이터베이스에 저장하거나
아니면 파일은 웹에서 접근할 수 없는 디렉토리에 넣어두고,
PHP로 파일을 읽어와서 실시간으로 뿌려주는 방식.
이것 역시 완벽할 수는 없겠지만
크롤러나 불필요한 사용자들에게 이미지를 보여주고 싶지 않은 경우
파일 형식으로 공개하는 것보다는 훨씬 방어할 수 있는 방법이 많다고 생각합니다.
더 자세히 설명하자면
show_image.php?image_id=6444351
이런식으로 이미지 id값을 호출받으면
해당하는 이미지 정보를 브라우저에 보내주게 되는데 이 PHP 파일 레벨에서 할 수 있는게 많거든요.
1. 리퍼러체크
2. 쿠키나 세션체크
3. POST값 체크
등 여러가지 제약조건을 많이 걸 수 있습니다.
다만 무시할 수 없는 단점이 있는데... 많이 느립니다.
헤더 정보를 조작해서 브라우저에 캐시가 남도록 만들 수도 있긴한데
이러나 저러나 처음 정보를 받아들일 때는 많이 느려요...
그래서 저도 만들어놓고 쓰다가 포기한 방법이긴한데 혹 도움이 되실까 적어봅니다.