웹마스터 팁

원본글 : http://sejin7940.co.kr/index.php?mid=xe_tips&document_srl=103487

제 사이트의 글을 가져온거기에 말이 좀 짧을 수 있습니다.

 

-------------------------------------------------------------------

 

 

통합검색 사용여부 설정 가능하게 설정 추가 하였다.

 

레이아웃에서 통합검색 폼을 안 만들어두면 통합검색이 안 될듯하지만

실제 주소를 알면 어느 사이트든 통합검색이 가능해진다.

( 관련 주소는 혹시나 싶어 기재하지 않지만,   예를들어  XE 공홈도 통합검색이 가능하다.

  물론 XE는 과거 통합검색을 허용했던 적이 있기에 노출가능한 게시판의 제한이 걸려 있어 문제는없지만.. )

 

 

물론 해당 유저가 통합검색 설정을 미리 해둬서 특정 게시판만 검색되도록 제한을 해뒀으면 무관하지만

어차피 통합검색을 안 쓸거라고 생각하고 특별히 설정을 하지 않은 경우는..

 

해당 사이트에 있는 모든 글과 댓글 들이 검색되어버린다.

물론 비밀글 처리되어있거나, 접근/보기 권한등이 막아두었다면.. 내용은 볼 수 없지만

(그래도 제목이 보인다는 것만으로도 짜증날 수 있다. . 심지어 댓글의 경우 3줄정도까지 내용이 다 보이고..)

 

진짜 문제 될 수있는건..

관리자가 자기 혼자 쓰려고, 노출되는 메뉴 에 넣지 않고 별도로 관리자만 아는 mid 주소로 빼둔 게시판 등이 있고

이 게시판에 대해 당연히 주소를 모를거라고 생각하고, 접근 권한을 막아두지 않은 경우 발생한다

당연히 이렇게만 해둬도 노출이 안 되는걸로 보이니.. 충분히 안심하고 있을 수 있는 상황일듯 싶다..

그런데, 이런 글은 검색을 통해 게시판을 찾을 수도 있고, 자칫하면 열람이 가능해져버리는 문제가 발생한다.

 

결국 XE 의 숙련도에 달려있는 부분인데, 자칫하면 꽤 애매한 보안문제가 생길 수 있다..

 

그래서 통합검색 자체의 기본설정을 '사용불가' 로 해두고..  ( 사용불가시에도 최고관리자는 사용 가능)

이를 사용하고픈 경우, 통합검색 모듈 설정에 와서, '전체 사용'으로 하면 손님도 사용 가능하고

'회원 사용'으로 허가한 경우,  하단에서  사용그룹 지정을 별도로 하여 특정그룹 또는 전체회원 이 사용가능하게 설정이 가능하다.

 

물론 기존에 통합검색을 자연스럽게 쓰던 사이트들은 관리자가 통합검색 모듈에서 가서 한번 설정을 해줘야하는 불편이 따르지만

그동안 통합검색 대상에 대한 제한을 안 걸어서 모든게 검색 될 수 있다는걸 이 기회에 알게 해주는 효과도 있고

보완 이슈가 될 수 있는 이상, 기존 사이트들에게 불편을 주더라도 막아 재설정하는게 맞다고 생각한다.

 

 

 

 

 

 

통합검색 사용여부 설정 가능하게 설정 추가

기본은 사용이 가능하지만
관리자가 통합검색 모듈 설정에서, 사용 불가로 설정가능하도록

 

1. modules/intergration_search/tpl/index.html 에서

<input type="hidden" name="xe_validator_id" value="modules/integration_search/tpl/index/1" />

아래에 추가


<div class="x_control-group">
 <label class="x_control-label">{$lang->use}</label>
 <div class="x_controls">
  <select name="use">
   <option value="N">{$lang->notuse}</option>
   <option value="M" selected="selected"|cond="$config->use=='M'">{$lang->member} {$lang->use}</option>
   <option value="Y" selected="selected"|cond="$config->use=='Y'">{$lang->all} {$lang->use}</option>
  </select>
 </div>
</div>
<div class="x_control-group">
 <label class="x_control-label" for="use_group">{$lang->grant_access}</label>
 <div class="x_controls">
  <!--@foreach($group_list as $key_group=>$val_group)-->
  <label for="target_group_srl_{$key_group}" style="float:left; margin-right:10px;"><input type="checkbox" name="use_group[]" id="target_group_srl_{$key_group}" value="{$key_group}" <!--@if(in_array($key_group,$config->use_group))-->checked<!--@end-->>{$val_group->title}</label>
  <!--@end-->
  <p class="x_help-inline">{$lang->about_grant_access}</p>
 </div>
</div>

 

 


2. modules/integration_search/integration_search.admin.view.php 에서

function dispIntegration_searchAdminContent 함수 내부에

$security = new Security();  위에다가 추가

$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
context::set('group_list',$group_list);

 

 


3. modules/integration_search/integration_search.admin.controller.php 에서

function procIntegration_searchAdminInsertConfig()  함수내에

$args = new stdClass;  아래에다가 추가

$args->use = Context::get('use');
$args->use_group = Context::get('use_group');

 

 


4. modules/integration_search/integration_search.view.php  에서

function IS()  안에

$config = $oModuleModel->getModuleConfig('integration_search');

아래에다가 추가


$logged_info = Context::get('logged_info');
if((!$config->use || $config->use=='N') && $logged_info->is_admin!='Y') {
 return new Object(-1,'msg_not_permitted_act');
}
elseif($config->use=='M' && !$logged_info) {
 return new Object(-1,'msg_not_permitted_act');
}
elseif($config->use=='M' && $config->use_group) {
 $group_array = $config->use_group;
 foreach($group_array as $key_group=>$val_group) {
  $selected_group_srl = $group_array[$key_group];
  if($logged_info->group_list && $is_use_group!='Y') {
   $group_list = array_keys($logged_info->group_list);
   if($group_list && count($group_list) && in_array($selected_group_srl , $group_list)) {
     $is_use_group = 'Y';
     break;
   }
  }
 }
 if($is_use_group != 'Y') return new Object(-1,'msg_not_permitted_act');
}

 


5. modules/integration_search/lang/lang.xml 추가

<item name="about_grant_access">
 <value xml:lang="ko"><![CDATA[회원만 사용하게 설정가능한 경우 사용 그룹 제한 가능. 설정이 안 되어있으면 모든 회원이 가능]]></value>
</item>

제목 글쓴이 날짜
검색엔진 네이버 사이트 순위 SEO 검색엔진 최적화 작업해도 안 올라간다면.. [1] file CJM 2022.05.16
css 팁 : 색상코드 검색이필요할때 Dotcomsoft 2018.01.17
통합검색의 기본값을 '제목' 이 아니라 '제목+내용' 으로 하고 픈 경우 [2] sejin7940 2017.02.24
관리자페이지의 게시판 목록에서 '모듈분류'로만 검색이 안 되는 버그 수정 sejin7940 2016.11.09
통합검색 기능에 권한 적용하기 (완전 차단 필요할 때) [9] file 모노소프트 2012.04.30
게시판 하단 검색대상의 순서,노출항목 들 제어하는 방법 [1] sejin7940 2013.10.15
XE 1.5 에서 확장변수 검색이 안 되시는 경우 해결책 [5] sejin7940 2012.01.24
확장변수 검색시 범위 설정해서 검색하는 팁. [2] 키다리아저씨2 2015.06.16
추천검색어,실시간인기순위 소스 file codlllle 2015.06.21
다음 실시간 검색어 위젯 file codlllle 2015.06.19
1.8.3 통합 검색시 제목+내용 으로 하기 불금 2015.06.09
네이버맵 좌표(Lat, Lng) 검색기 YJHOON 2015.05.27
통합검색 사용 가부 설정 및 특정 그룹만 사용가능하게 제한 설정 기능 추가 - 보안이슈가 될 수 있는 부분 [1] sejin7940 2015.04.10
ie11에서 통합검색시 page가 바뀌면 검색키워드가 없어지거나 이상한 글자로 바뀌는 것에 대한 팁 garnecia 2015.04.03
게시판에서 태그 기준으로 검색하면 임시저장글들도 노출되는 버그 수정 sejin7940 2015.01.23
사이트 종합해서 접속자 아이피 검색 file StyleRoot 2015.01.19
1.7.9 mp3확장명 통합검색시 다운로드 문제 임시 조취 꾸링 2015.01.13
사용자정의 기준 정렬과 사용자정의 검색이 동시에 작동하도록 기능 개선 [2] sejin7940 2015.01.06
관리자 페이지 날짜 검색과 스크랩. [1] 무얼까2 2014.12.24
회원포인트 목록에서 검색 후 포인트 업데이트시 검색 상황이 그대로 유지되도록 sejin7940 2014.11.20