XETOWN

자유광장

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기

사실 흔하게 쓰는 방식이기도 한데

 

이미지 파일을 데이터화해서, 데이터를 브라우저에 전송하는 방식인데요.

 

말하자면 BLOB으로 데이터베이스에 저장하거나

아니면 파일은 웹에서 접근할 수 없는 디렉토리에 넣어두고,

PHP로 파일을 읽어와서 실시간으로 뿌려주는 방식.

 

이것 역시 완벽할 수는 없겠지만

크롤러나 불필요한 사용자들에게 이미지를 보여주고 싶지 않은 경우

파일 형식으로 공개하는 것보다는 훨씬 방어할 수 있는 방법이 많다고 생각합니다.

 

더 자세히 설명하자면

show_image.php?image_id=6444351

 

이런식으로 이미지 id값을 호출받으면

해당하는 이미지 정보를 브라우저에 보내주게 되는데 이 PHP 파일 레벨에서 할 수 있는게 많거든요.

 

1. 리퍼러체크

2. 쿠키나 세션체크

3. POST값 체크

등 여러가지 제약조건을 많이 걸 수 있습니다.

 

다만 무시할 수 없는 단점이 있는데... 많이 느립니다.

 

헤더 정보를 조작해서 브라우저에 캐시가 남도록 만들 수도 있긴한데

이러나 저러나 처음 정보를 받아들일 때는 많이 느려요...

 

그래서 저도 만들어놓고 쓰다가 포기한 방법이긴한데 혹 도움이 되실까 적어봅니다.

 

 

  • ?
    ibcms 2016.08.11 11:03:06
    사실 Response 헤더를 그대로 보내주면 되기때문에 오히려 파싱하기 더 쉬워집니다.
  • profile
    김웃김 2016.08.11 14:07:34
    그런가요. 제가 잘 몰라서...
    호출하는 페이지가 1회용 쿠키를 만들어서 이름은 난수로 만들고, 값에는 고정값을 넣어 호출하고
    showimage.php는 전달받은 쿠키이름으로 쿠키안에 든 값을 대조후에 폐기하고...
    대조값이 맞다면 이미지를 출력하고 아니라면 보여주지 않는 방식 등도 통하지 않을까요.
  • ?
    ibcms 2016.08.11 14:20:07
    어떤말씀인지는 모르겠지만 페이지를 여는순간 POST 값이 전송되고 화면에서 바로 확인할 수 있다면 바로 파싱됩니다. 1회용 쿠키는 ResponseHeader에서 잡아내면 됩니다.(Set Cookie는 헤더단에서 보입니다.)
  • profile
    팀워크 2016.08.11 11:10:25
    카메라로 찍으면..!!

서버에 요청 중입니다. 잠시만 기다려 주십시오...