웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
SetEnvIf 와 SetEnvIfNocase 의 차이
2002.12.13 21:04
SetEnvIf 로 환경변수 설정을 할 경우 대소문자를 가리기때문에
만약 앳플 운영자분 말대로 아래와 같이 설정할 경우
## 해당 IP 나 해당 도메인에서 접근시에는 파일머치에서 지정해준 파일을 사용할수있도록 허가함 ###
SetEnvlf Referer 211.202.1.247 go_in
SetEnvIf Referer "atpple.com" go_in
http://atpple.com 에 한해서는 링크방지가 적용이 되지만
ATTPLE.COM 으로 접속하게되면 또 다른 Case 가 적용되므로 저 스크립트가 적용되지 않습니다.
즉 atpple.com 으로 접속하면 그림이 잘나오지만 만약 대문자로 접속을 시도했다고 치면
그림이 보이지 않는 경우가 발생하는것이죠
SetEnvIfNoCase 로 바꿔야 합니다. 환경변수 설정을요.
김정균님 해설을 빌리자면
-------------------------------인용---------------------------------
간단하게 설명을 해 보도록 하자.
SetEnvIfNoCase Referer "http://(www.)?oops.org" perimit
일단 SetEnvIf를 사용하지 않고 SetEnvIfNoCase 를 사용한 이유를 생각해 보자. 현재의 도메인 네임 체계에서는 대소문자를 가리지 않는다. 그러므로 HTTP_REFERER 의 값이 http://www.oops.org 이든 http://WWW.OOPS.ORG 가 동일하게 적용이 된다. 즉 http://www.oops.org 에서만 image가 하이퍼 링크를 하는 것을 가능하게 하려 하는데 어느 누군가 http://WWW.OOPS.ORG 와 같이 대문자로 접근을 했을 경우 이를 처리를 하지 못하는 경우가 발생할수 있으므로 대소문자 구분을 하지 않는 SetEnvIfNoCase 를 사용하는 것이다.
----------------------------- End -----------------------------------
이렇게 되는 것입니다. 또한 www 에 대해서도 예외처리를 해주시지 않은점이 매끄럽지 않군요.
많은 강좌를 올려주시는것은 감사하지만 충분한 검증이 필요한것 같습니다.
여기 강좌를 올려주시는 많은 분들이 검증없이 올려주시는 경우가 있습니다. 제가 뭐라고 할 입장은 못돼지만
충분한 검증과 Hall 은 없는지.. 잘 생각하신후 강좌를 올려주시면
영양가 100% 의 강좌가 되겠습니다! 감사합니다.
만약 앳플 운영자분 말대로 아래와 같이 설정할 경우
## 해당 IP 나 해당 도메인에서 접근시에는 파일머치에서 지정해준 파일을 사용할수있도록 허가함 ###
SetEnvlf Referer 211.202.1.247 go_in
SetEnvIf Referer "atpple.com" go_in
http://atpple.com 에 한해서는 링크방지가 적용이 되지만
ATTPLE.COM 으로 접속하게되면 또 다른 Case 가 적용되므로 저 스크립트가 적용되지 않습니다.
즉 atpple.com 으로 접속하면 그림이 잘나오지만 만약 대문자로 접속을 시도했다고 치면
그림이 보이지 않는 경우가 발생하는것이죠
SetEnvIfNoCase 로 바꿔야 합니다. 환경변수 설정을요.
김정균님 해설을 빌리자면
-------------------------------인용---------------------------------
간단하게 설명을 해 보도록 하자.
SetEnvIfNoCase Referer "http://(www.)?oops.org" perimit
일단 SetEnvIf를 사용하지 않고 SetEnvIfNoCase 를 사용한 이유를 생각해 보자. 현재의 도메인 네임 체계에서는 대소문자를 가리지 않는다. 그러므로 HTTP_REFERER 의 값이 http://www.oops.org 이든 http://WWW.OOPS.ORG 가 동일하게 적용이 된다. 즉 http://www.oops.org 에서만 image가 하이퍼 링크를 하는 것을 가능하게 하려 하는데 어느 누군가 http://WWW.OOPS.ORG 와 같이 대문자로 접근을 했을 경우 이를 처리를 하지 못하는 경우가 발생할수 있으므로 대소문자 구분을 하지 않는 SetEnvIfNoCase 를 사용하는 것이다.
----------------------------- End -----------------------------------
이렇게 되는 것입니다. 또한 www 에 대해서도 예외처리를 해주시지 않은점이 매끄럽지 않군요.
많은 강좌를 올려주시는것은 감사하지만 충분한 검증이 필요한것 같습니다.
여기 강좌를 올려주시는 많은 분들이 검증없이 올려주시는 경우가 있습니다. 제가 뭐라고 할 입장은 못돼지만
충분한 검증과 Hall 은 없는지.. 잘 생각하신후 강좌를 올려주시면
영양가 100% 의 강좌가 되겠습니다! 감사합니다.
댓글 7
-
김병철
2002.12.15 08:01
-
Dopesoul
2002.12.15 20:57
앳플에 무단링크 방지가 적용되었는지요.
제 홈페이지에서 테스트파일을 제작했습니다.
http://rootguide.com/test.html
위 URL 에서는 앳플의 아무그림이나 링크했습니다.
img src 태그와 하이퍼링크로 그림을 직접 링크해봤습니다.
링크가 잘되는데. 그것은 무단링크방지가 적용(?)되서 그런지요?
현재 적용한 상태인지 안한상태인지 궁금합니다.
실존하지 않는 도메인으로 링크가 가능한것은 네임서버에서 * 처리를 해줬기
때문에 그런것 아닌가요? 무단링크방지와는 상관없는 내용으로 압니다만..
그리고 제가말한 대소문자 구분은 atpple.com 에 a 라는 이미지파일이있는데
atpple.com/a.gif 로 접속하면 잘 나오지만 ATPPLE.COM/a.gif 로 접속하게되면
Fobidden 이나 배꼽표시(X) 표시가 나타나는 것이지요. 즉 대문자로 접속한 사용자는
그림을 볼수 없다는 이야기가 되는 것입니다.
지금 김병철님께서 세팅하신경우는 모든 사람들이 소문자로 접속한다는 가정하에
세팅하신것이지요. 대문자인경우는 생각하지 않으신것입니다.
SetEnvIf 는 대소문자를 구별하여 Case 를 적용시키지만
SetEnvIfNocase 는 대소문자를 구별하지않으므로
도메인관련세팅에서의 아파치 환경변수이용은 SetEnvIfNocase 로 해야한다는 것이지요. -
Dopesoul
2002.12.15 20:57
위의링크가 제로보드의 정규표현식의 인식탓으로 깨졌습니다.
뒤의 Br 을 제거하신후 접속하시기 바랍니다. -
김병철
2002.12.16 02:20
그리고 남의 강좌가 잘못되었을때 이렇게 무턱대고 남의 글을 인용하여 실제 환경에 적용해보지않고 제대로 알아보지 않은상태에서 나의 강좌를 비방하는것은 오히려 옳지않은것으로 여겨집니다. 오히려 강좌를 쓴분의 코맨트에 이렇게 되는것이 아닌가요? 하고 반문씩으로 물어보거나 혹은 이렇게 하는것이 오히려 더 낳을 것입니다 씩으로 하시는것이 오히려 더 낳겠죠..
그럼 이만 줄이도록 하겠습니다. -
김병철
2002.12.16 02:15
^^ 앳플은 이미지에 대해서 무단링크를 제어하지 않고 있습니다.
앳플에서 무단링크 금지파일은 아래와 같습니다.
<FilesMatch ".(avi|mp3|zip|tar|gz|z|mpeg|asf|exe|swf|wmf|arj|rar|mpg|pls|Z)$">
더이상 이런걸로 조금 시비를 가리는게 좀그렇지만 Dopesoul 님 좀더 자세히 알아봐주시기 바랍니다. 그리고 Dopeoul 님의 이해를 돕고자 2일간 앳플서버에 이미지파일도 무단링크 불가하도록 구성을 하도록 하지요..
1시 57분 현재 앳플닷컴 서버 이미지파일링크또한 무단링크 금지시켰습니다. Dopesoul 님의 테스트 페이지 접속시 이미지파일이 링크 되지 않음을 보실수 있을 것입니다.
NoCase 는 이론상으로 대소문자구분을 짓는다고는하나 현실적으로는 통용되지 않는 명령어이며 이는 인터넷체계상 도메인에 대해서는 대소문자를 가리지 않기때문입니다. Nocase는 대소문자 도메인을 구분지어 소문자일때나 대문자로 접근했을때 해당대소문자 도메인에 대해서만 차단을 하기위해 사용하는것입니다. 올바른 이해를 해주시기 바랍니다. -
김병철
2002.12.16 03:51
아 마지막으로 Dopesoul 님께 한마디더 여러모로 노력하는모습은 참 보기좋네요.. 하지만 실무와 곁들여서 좀더 연구하신다면 자세히 알수있을 것이라 여겨집니다. 그리고 Nocase 에대한 이해력이 좀 부족하신듯하고 이론과 함께 실무를 좀더 연구하셨으면하네요.. 다시 말씀드리자면 NoCase 는 대소문자를 구분해서 소문자혹은 대문자 둘중 하나만 지정해서 무단링크 방지를 할때 사용하는것이고 Nocase 를 사용하지 않은 경우엔 대소문자 구분없이 해당 도메인에대해 무단 링크를 방지 하는것입니다. 하지만 위에서도 말씀드렸지만 인터넷 체계자체가 주소에대해서 대소문자를 구분하지 않으므로 NoCase 는 실제 적용이 되지 않는다는 것을 말씀드리고 싶군요.. -
®웃^음^이®
2003.01.04 06:21
이긍 남에 강좌 무시하지말도록합시다. 그래야 다음에 또 올려주지요.
SetEnvIfNoCase 에 대해 잘못이해하고 계신것 같군요.. SetEnvIfNoCase 는 대소문자를 구분짓기 위해 사용하는것입니다. 즉 http://atple.com과 http://ATPPLE.COM을 구분짓는것이지요 저것을 사용하게 된다면 SetEnvIfNoCase 에 지정된 문자(대/소문자)로 된 도메인접근에 대해서만 예외항목을 적용시키게 되는것입니다.
즉 님의 말과는 다른것입니다. SetEnvIfNoCase Referer "atpple.com" go_in 을 하게될경우 소문자로 링크한파일에 대해서 예외항목을 적용시키고 대문자로 링크한것에대해서는 받아들이지 않겠다는 것입니다.
그리고 www 을 사용안한것을 말씀하셨는데.. 음.. 그 이유는 모든 1차도메인에 대하여 2차도메인은 종속되기 때문에 2차도메인을 따로 예외항목으로 지정할 필요가 없습니다.
즉 1차도메인만 지정해줌으로 인해서 atpple.com 에대한 2차도메인 모두가 예외항목으로 지정되는것입니다. 오해의 소지가 없었으면 하는 바램입니다.
링크에대해서는 궁금하시다면 HTTP://DEMO.ATPPLE.COM/jsdk20.tar.Z를 링크하여 한번 사용해보시기 바랍니다. 앳플은 SetEnvIf Referer 를 사용하고 있으며 DEMO 라는 2차도메인에 대하여 예외항목을 적용시키지 않고있습니다.
왠지 충분한 검증을 거쳐보셔야 할분은 제가 아니라 Dopesoul 님이 아닐까 하는생각이 드는군요.. 저는 서버관리를 하는 서버마스터로써 제가 해본것만을 강좌로 연재하고 있으며 이곳의 왠만한 설정법은 모두 현 앳플닷컴 서버의 설정과 동일합니다. ㅡㅡa