웹마스터 팁

간단한 팁인데, 이걸 몰라서 꽤 복잡한 방식으로 고치느라 고생하시는 분들이 계신 것 같아서 적어봅니다.

 

통합검색을 사이트 전체 대상으로 하는 만큼, 노출 자체를 허용하기 싫은 상황이 발생할 수 있습니다. 예를 들어, 사이트의 컨텐츠를 승급된 정회원만 이용하게 하고 싶은 경우가 그것입니다. 

 

검색 입력 폼을 권한에 따라 노출 여부를 정하는 방식은 사실상 눈가리고 아웅 하는 격이고, 따라서 IS 모듈의 동작 자체를 제어할 필요가 있습니다.

 

 

 

1.5.x 버전 기준으로 통합검색이 실행되는 uri 는 보통 다음과 같습니다.

/?error_return_url={검색 발생한 페이지 url}&mid={검색 발생한 페이지 mid}&act=IS&search_target=title_content&is_keyword={검색어}

 

위 링크에서 mid가 하는 역할에 주목해야 합니다. 해당 mid 를 갖는 모듈의 권한에 따라서 IS의 동작 권한도 발생하기 때문입니다(intergration_search.view.php 파일의 funciton IS() 를 참조하세요). 

 

즉, 검색 기능 자체를 차단하고 싶다면, 권한 설정이 된 mid 를 연결시켜주면 간단히 해결되는 셈입니다. 이해가 잘 안 되시면 다음의 설정 과정을 보시면 감이 잡히실 것 같습니다.

 

 

 

1. 

제 경우에는 이렇게 외부페이지 속성으로 IS 라는 mid 를 갖는 모듈을 생성했습니다.

생성 후 권한 관리 페이지에서 원하는 설정을 해줬습니다.

 

Screen Shot 2012-04-30 at 11.41.10 AM.png

 

 

 

2.

그리고 다음과 같이 통합검색 폼 부분을 수정합니다. 

 

 

<form action="{getUrl()}" method="get" class="iSearch">

<input type="hidden" name="vid" value="{$vid}" cond="$vid" />

<input type="hidden" name="mid" value="IS" />

<input type="hidden" name="act" value="IS" />

<input type="hidden" name="search_target" value="title_content" />

<input name="is_keyword" type="text" class="iText" title="keyword" />

</form>

 

통합검색 폼은 위와 같이 직접 코딩해서 넣으셔도 되고, 통합검색 모듈에 스킨에서 위와 같이 수정하셔도 됩니다.
 
 
 

 

 

3. 

권한설정 내용을 적용하려고 mid 를 건드리는 것인 만큼, 통합검색에서 mid 를 체크하게끔 해서 우회 접근을 아예 막아버립니다. 

/modules/intergration_search/intergration_search.view.php 파일에서 아래의 mid check 내용을 추가합니다.

 

        function IS() {

            $oFile = &getClass('file');

            $oModuleModel = &getModel('module');

            // Check permissions

            if(!$this->grant->access) return new Object(-1,'msg_not_permitted');

 

            // mid check

            $mid = Context::get('mid');

            if(empty($mid)||$mid!='IS') { return new Object(-1,'msg_not_permitted'); }

 

 

 

 

지금까지 내용은 단순히 권한에 따른 통합검색 접근 허용/비허용 내용입니다만, if(!$this->grant->{권한명칭} 구문을 응용하고, db의 xe_module_grants 테이블에 IS 모듈에 대한 설정을 추가해서 제목만 노출시키거나 내용을 제어하는 등 여러 가지 조치를 취할 수 있을 겁니다.

 

별다른 내용은 없습니다만, 참고가 되셨으면 해서 쓰고 갑니다.^^

 

 

제목 글쓴이 날짜
v1.5를 위한 제어판 테마 애드온 정식 [4] file 우진홈 2012.02.13
회원 가입 시 IP 중복 검사 [30] file CMD 2012.02.24
모바일 페이지가 스마트폰에서 가로폭이 넓게 나올경우의 팁 [2] 카워시 2012.02.27
외부페이지를 생성해서 사용하면 무척 빠릅니다. [2] 퍼니엑스이 2012.02.27
로봇에 의하여 무한 회원가입이 발생할 때 제가 처리하는 방법 [3] 별님왕자 2012.02.27
ie9에서 회원가입폼 클릭이 안될때 엔키오 2012.03.01
업데이트했는데 관리메뉴중 일부가 안보일때 [2] 요술봉 2012.03.04
운영하던 사이트의 도메인 주소를 변경했을때 기존 사이트의 이미지들이 엑박이 뜰때 해결방법 [4] 졸라맨 2012.03.05
회원가입폼 비밀번호 찾기 질문/답변 삭제및 필수항목 선택 (송동우님 팁) 때린데 또때려 2012.04.08
회원가입폼 비밀번호 찾기 질문/답변 삭제및 필수항목 선택 (송동우님 팁) [8] 때린데 또때려 2012.04.09
게시판에 다운로드 횟수 출력하기 (스케치북 게시판 전용) [5] file 숭숭군 2012.04.20
통합검색 기능에 권한 적용하기 (완전 차단 필요할 때) [9] file 모노소프트 2012.04.30
가입폼 글자 수 입력 제한 수정 방법 입니다. (검색해도 어디에도 되는게 없어서 올립니다.) [7] easeE 2012.05.03
제작시 방화벽문제 때문에 고정IP 주소가 필요할때 [2] sejin7940 2012.05.09
제로보드XE 1.4 -> 1.5 초간단 업그레이드 [10] 행복돌이 2012.05.15
관리자페이지 게시판목록에서 일괄 권한 설정 안 되는 버그 수정법 [1] sejin7940 2012.05.17
쉬운설치후 백지현상 해결방법 [복잡해서 다시 작성하였습니다.) [4] file 마음의빈자리 2012.05.24
관리자에서 그룹검색을 이용한 회원목록 제대로 안 보일때.. [2] sejin7940 2012.06.01
댓글 자꾸 끝페이지가 먼저 뜨는 것을 1페이지부터 뜨도록 수정 [2] 모노소프트 2012.06.19
관리자페이지 전체 댓글 리스트에서 추천/비추천수 안 나오는 버그 수정법 [2] sejin7940 2012.06.22