방문자가 임의로 실행할 수 없도록 페이지를 만들 때

방문자가 임의로 실행할 수 없도록 페이지를 만들 때

QA

방문자가 임의로 실행할 수 없도록 페이지를 만들 때

답변 1

본문

link.php가 있잖아요.

그 페이지를 방문자가

 

http://도메인/bbs/link.php...

 

이렇게 실행시키지 못하도록 하는, 일종의 접근을 금지시하는 기능을 어디선가 본 것 같은데 기억이 나지 않네요.

php 안의 첫줄에 무언가 삽입하는 것으로 알고 있는데요...

 

게시판이 실행하는 과정에서 불러들일 수는 있지만, 회원이 이 파일만 실행은 시키지 못하게 하는 방법요...

 

 

아 눈도 적당히 내렸는데...

좋은 하루되세요.

이 질문에 댓글 쓰기 :

답변 1

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

요거 말씀이신가요???
이건 스킨파일에서 사용되는 거고..

 

따로 파라미터를 받으실텐데..

그 값을 db에서 조회해서 값이 없으면 중지시키는 쪽으로 진행하셔야 할것 같습니다.

 

예를들어

bbs/board.php 의 경우

 

if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}

 

이런 흐름으로요

먼저 말슴해주신 부분이 아주 좋은 힌트가 되었습니다. 감사합니다.
그런데 이 페이지를 board.php내에서 실행했을 때도 링크는 보여주지만 해당 링크를 클릭하면 해당 페이지로 가지 않고 null 로 나타나네요 ㅠㅠ

if (!defined('_GNUBOARD_')) exit;
이 부분이 미안하지만 개별페이지일때만 null 값을 주는 것이 맞는지요.
단독실행 때는 확실히 null 값을 주는 것은 확인했습니다.

다시한번 답변 감사드립니다.

if (!defined('_GNUBOARD_')) exit;
이거는 말씀드렸다시피 스킨파일에 사용됩니다.

_GNUBOARD_ 라는 상수는 common.php에 있는데
스킨파일 별개에는 common.php을 인클루드 하지 않기때문에

도메인/skin/write.php 이런식으로 접근햇을때 common.php이 없어서 막히는것이구요..

다시 보니까
link.php에서
$_SERVER["HTTP_REFERER"]을 이용하는 방법도 있겠습니다.

주소를 복사해서 들어오는것을 방지하시는것이라면..

$_SERVER["HTTP_REFERER"]에 도메인이나, 도메인/bbs/baord.php이 있는지 체크하시고
없다면 게시판이 아닌, 다른방법으로 접근한것 이므로 여기에서 실행안되게 처리를 하면 될것같은데요..



저라면 이런 흐름으로 작업할것 같네요~ 참고되시길..

아래 두번째 답변이 저의 의중을 꿰뚫고 계셔서 정말 감사합니다.
그런데 제가 초보라서...

그러면 common.php를 인클류드 하면 될까요?

또는

abc.com이라고 하면 명령어 $_SERVER["HTTP_REFERER"] 가 제가 써보지 않은 명령어라서 그러는데요. bbs/board.php 에서 실행한 것이 아니면 널값을 주게끔하려면 어떤 코드를 포함해야할까요?

수준이 부족한 질문이라 미안합니다.. ㅠㅠ

조나단 님의 방법이 옳았습니다.
엄지척입니다.
오늘 조나단님의 말씀을 인용하여 다시 해보니 되었습니다.
대신에 해당 게시판에 관리자외 글쓰기 기능을 없애야 할 것 같습니다.
댓글쓰기 기능도 없애야 할까봐요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 32
© SIRSOFT
현재 페이지 제일 처음으로