묻고답하기
관리자를 제외한 비로그인자, 회원들에게 주소 뒤 /admin 으로 접속시 접근금지하는 방법좀 알고 싶습니다.
2014.04.19 15:09
관리자를 제외한 비로그인자, 회원들에게 주소 뒤 /admin 으로 접속시 접근금지하는 방법좀 알고 싶습니다.
Invalid access has been detected.
이것 혹은
Security system: XSS protection
이렇게
막아둔곳들이 있던데 이거 대체 어떻게 하는거죠?
주소뒤 /admin 으로 접속시 저런식으로 메세지 보여주고, 로그인창이 아예 안보이게 하고 싶습니다.
댓글 12
-
샤엠
2014.04.19 16:47
-
루팡쿠팡
2014.04.19 17:08
리다이랙트는 방법 말고 Invalid access has been detected. 이렇게 뜨게 하는 방법은 없나요?
-
샤엠
2014.04.19 17:12
Invalid access has been detected. 하얀 페이지에 텍스트만 표시ㄴ되는걸 말씀하시는 건가요?
아니면 xe 에러 메시지를 말씀하시는 건가요?
만약 전자라면; header() 이부분대신에 die('Invalid access has been detected.'); 이렇게 하시면 됩니다.
후자라면, 제가 정확히 xe 에러코드에 위 메시지가 있는지는 모르겠지만
잘못된 요청 페이지로 보이게 하려면 아래와 같이 하시면 될것 같습니다.
if(($kind == 'admin' && !$logged_info) || ($kind == 'admin' && $logged_info->is_admin != 'Y')) {
$this->_setInputErrorToContext();
$this->error = 'msg_invalid_request';
$oMessageObject = ModuleHandler::getModuleInstance('message', $type);
$oMessageObject->setError(-1);
$oMessageObject->setMessage($this->error);
$oMessageObject->dispMessage();
if($this->httpStatusCode)
{
$oMessageObject->setHttpStatusCode($this->httpStatusCode);
}
return $oMessageObject;
}
-
루팡쿠팡
2014.04.19 19:06
http://www.dogdrip.net/admin 이곳처럼 하고 싶습니다. -
샤엠
2014.04.19 19:08
그럼 전자의 방법으로 하셔도 됩니다.
if(($kind == 'admin' && !$logged_info) || ($kind == 'admin' && $logged_info->is_admin != 'Y')) {
die('Invalid access has been detected.');
}
-
루팡쿠팡
2014.04.19 19:33
ftp 에서 ModuleHanlder.class.php header() 이부분에 넣어주면 되나요?
그리고 저렇게하면 관리자는 주소/admin 정상적으로 들어갈수있나요? 아님 관리자도 포함해서 막히는건가요?
-
okiz
2014.04.19 18:29
해당되는 기능은 아래 애드온 이용하시면 됩니다.
http://www.xpressengine.com/index.php?mid=download&category_srl=18322925&search_keyword=security&package_srl=21400134
접속 허용할 IP 지정해 주시면 됩니다.
-
루팡쿠팡
2014.04.19 19:34
만일 이사를 가야한다 그러면 이 애드온을 끄고 이사후에 다시 애드온을 키면 되는건가요?
-
prologos
2014.04.19 21:15
애드온을 따로 만들기는 뭐해서 @LI-NA님의 아래 애드온에 해당 기능을 추가해서 이용하고 있습니다.
http://www.xpressengine.com/index.php?mid=download&package_srl=22622633
지정한 사용자ID 이외에는 어드민 페이지의 접근을 제한하며... 원하시는 메시지는 아니지만 xe의 기본 404메시지와 동일한 메시지를 출력합니다. 기본적인 애드온의 사용법은 위의 링크를 참고하시고 아래처럼 제가 추가한 설정 부분이 보일겁니다. 이 입력란을 비워놓으면 누구나 admin에 접근이 허용되지만 아이디를 지정 해놓으면 지정된 아이디 외의 모든 사용자의 접근이 제한됩니다. 지정된 관리자또한 로그인 후 admin페이지에 접근하셔야 합니다.
-
루팡쿠팡
2014.04.19 23:34
@prologos 정말 감사드립니다.아래 blockact.addon.php 에서 빨간색으로 표시해둔 "01" 이 부분을Invalid access has been detected. 이 문구로 교체해줘도 될까요?//관리자모률 제한시 보여줄 페이지: 404 not found$html404 = '<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>01</title></head><body><style scoped>html,body{min-height:100%}body{font-size:12px}h1{margin:0;font:bold 24px Arial, Helvetica, sans-serif;color:#666}section{position:relative;max-width:500px;margin:100px auto 0 auto;padding:0 0 0 70px;overflow:hidden;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAwCAYAAAC4wJK5AAAABHNCSVQICAgIfAWnHgGeSJgDhEFDEmtCgiQkPTND0P1fRU1V1dXdO999wz7L3fH+fc6uoWxGSvdda5d626+/y++zd9f99TgldZT+46dJGS+jCYII=) no-repeat 5px 5px}div{height:100%;border-left:1px dotted #ccc;padding:0 0 0 15px}p{line-height:1.5;color:#66..... 생략.....6}@media only all and (max-width:480px){section{margin-top:20px}}</style><section><div><h1>404 Not Found</h1><p>요청한 페이지를 찾을 수 없습니다. 사이트 관리자에게 문의해 주세요.</p></div></section></body></html>'; -
prologos
2014.04.20 00:48
네 아무상관없는 부분입니다. 오류(?)메시지로 뿌려줄 html code부분이니 원하시는대로 수정하셔도 되는 부분입니다.
-
루팡쿠팡
2014.04.20 01:56
답변 감사드립니다^^
클래스 폴더에 Module폴더가 있습니다. 그리고 그 안에 ModuleHanlder.class.php 파일에서 수정 하시면 될 것 같습니다.
참고로 제가 현재 로컬에 설치해둔 xe 가 1.7.4 입니다.
클래스 파일안에 보시면 약 402 Line 쯤에....
if($kind == 'admin' && $_SESSION['denied_admin'] == 'Y')
{........아래 생략.....
이렇게 되어 있는 부분이 있습니다.
간단하게 위 코드 바로 위에 다음과 같이 작성하시면 로그인 안했을때 /admin 로 접속하면
리다이렉트 시킬수 있습니다.
if(($kind == 'admin' && !$logged_info) || ($kind == 'admin' && $logged_info->is_admin != 'Y')) {
header("Location: 리다이렉트주소");
return;
}
if($kind == 'admin' && $_SESSION['denied_admin'] == 'Y')
{........아래 생략.....