+ 이미지링크시 링크건 곳에 따라서 링크 이미지 주고 안주기...
글쓴이: 지성 / 작성시간: 일, 2004/10/03 - 4:22오전
궁금한점 :
<img src='http://www.a.com/aaa.jpg'>
현재 우리가 웹상에서 이미지를 링크걸면 위처럼 사용합니다.
그러면 해당사이트(http://www.a.com)으로 가서 상대경로에서 이미지를 찾죠 그런데 역으로 생각해서 www.a.com 에서 지금 링크를 건 페이지의 정보를 알아내려고 한다면 어떻게 해야할까요? 물론 이경우 a.com서버쪽에 어떤 설정혹은 서버단의 프로그램이 필요할거 같은데 혹시 이런경우 방법을 아시고 계시는분이나 아이디어를 주시면 좋겠네여 너무 궁금합니다.
Forums:
브라우저들은 Request 를 보낼때 어느사이트에서 참조하고있다는 Ref
브라우저들은 Request 를 보낼때 어느사이트에서 참조하고있다는 Referer 를 항상 헤더에 붙여서 보내줍니다.
별도의 서버설정없이 cgi 페이지라면 이 헤더를 바로 읽어내면되구요, jpg 등의 non-cgi 파일로 접근한 경우라면 로그파일을 살펴보시면 됩니다.
--
Sang-Kil Park
답변 감사드리구요 좀더 궁금한것은 ...
말씀드렸듯이 refer정보를 서버단에서 관리하자는 목적입니다 즉 디비에 넣고서 말이죠... 그러자면 로그를 사용하는 방법은 무리인거 같구요. 즉 사용자의 링크 요청이 들어오면 이걸 걸어줄지 말지까지도 결정하는 방법을 찾고 있습니다.
^^ 이해되셨죠..... 제발 어찌하오리오.......
단순히 Referer에 따라 보여줄 것인가 말 것인가를 결정하는거라면 간
단순히 Referer에 따라 보여줄 것인가 말 것인가를 결정하는거라면 간단한 아파치 설정만으로도 할 수 있습니다. (SetEnvIf 활용)
분석 등을 추가로 요구한다면, Referer에 대해 따로 로그 파일을 만들도록 하고 클론 작업 등을 통해서 주기적으로 통계를 만드는게 가장 간단한 방법일겁니다.
단, HTTP의 Referer 헤더는 클라이언트가 보내주는 것이므로 얼마든지 조작이 가능하다는 사실은 잊지 마셔야 할겁니다.
아니면 이미지 전송용 CGI를 별도 작성해서, 모든 이미지를 그쪽에서 확인하고 DB에 저장하도록 하거나, jpg, png 등의 확장자에 대해서 핸들러를 설정해버리는 방법도 있긴 합니다.
참고로 ... '정확히' 무얼 하고 싶은건지 전혀 이해가 되지 않아서 일반론적인 이야기밖에 해드릴수가 없겠네요.
좋은답변 우선 감사드리구요..... 추가로 설명하겠습니다.......
기능 :
사용자가 웹상에서 등록한 이미지정보를 다른곳에 링크시키려는데요.
이때 허가된 접근만을 보여주려고 합니다.
우선, 웹상에서 디비에 이미지정보를 저장하고 refer 페이지 정보도 저장해서
허가된 페이지에서 접근한 경우만 이미지를 보여주고 싶다는거죠 아닌경우는
차단하구요
말씀하신 아파치 설정의 경우 실시간으로 다수의 사용자에게 서비스 하긴 어렵지 않나 생각되구요 디비를 이용해야 할거 같은데...... (맞는말인가? ^^;)
아마도 님께서 말씀하신 cgi를 사용하는게 방법인듯한데 제가 php는 사용할줄 아는데 혹시 말씀하신 cgi를 php로도 가능한가요? 아님 c로 작성해야 하나여?
광고 서버 만드시나요? :)이미지 출력하는 것을 CGI프로그램 또
광고 서버 만드시나요? :)
이미지 출력하는 것을 CGI프로그램 또는 스크립트 페이지로 만들고,
<img src="http://a.com/image.php">
해당 스크립트에서 Referer: 필드 받아서 DB에 넣든 기존 내용과 비교하고 출력을 image/gif로 보내면 되겠네요.
--
익스펙토 페트로눔
빨리 답변주셨네여 ... ^^; 감사드립니다.. .잘 활용해보도
광고서버는 아니구..... 그냥 기능적으로 궁금한탓에.......
공력이 저랑은 많이 차이가 있으신데..... 늦게 해보려니 참 어렵군요... ^^
수고하시고 종종 도움부탁드립니다...
ps. 혹시 image/gif 이런 타입으로 되돌려줄때는 php에서 어떻게 돌려주나여?
헤더파일형식으로? 하수라 고단합니다..이해하시길... ^^
파일 이름이 image.php라고 할때 대충[code:1]<
파일 이름이 image.php라고 할때 대충
:)
댓글 달기