BOARD

팁·활용

그누보드 첨부파일 직접 다운로드 링크 추출 방법과 설정

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 8회 작성일 26-10-06 15:41

본문

그누보드 첨부파일 직접 다운로드 링크 추출 방법과 설정

그누보드 게시판의 첨부파일 다운로드 링크를 외부나 다른 곳에서 직접 사용할 수 있도록 추출하려는 운영자와 개발자를 위한 설정 방법과 주의사항을 안내합니다.

그누보드 첨부파일 외부 및 직접 다운로드 링크 추출 방법

그누보드는 기본적으로 보안 이슈로 인해 첨부파일에 대한 직접 링크를 허용하지 않습니다. 외부나 다른 곳에서 사용할 수 있는 직접 다운로드 링크를 추출하려면, 세션 및 권한 검증 코드를 우회하는 전용 다운로드 파일을 생성하고 게시판 스킨을 수정해야 합니다.

1. 다운로드 파일 생성 및 코드 우회 설정

  1. bbs/download.php 파일을 복사하여 download2.php 이름으로 생성하여 업로드합니다.
  2. download2.php 파일 내부의 세션 검증 및 다운로드 권한 체크 코드를 주석 처리합니다.
  • 세션 검증 코드 수정 (7~8라인 원본 및 수정)
// 원본
if (!get_session("ss_view_{$bo_table}_{$wr_id}")) alert("잘못된 접근입니다.");

// 수정
//if (!get_session("ss_view_{$bo_table}_{$wr_id}"))
// alert("잘못된 접근입니다.");
  • 다운로드 권한 체크 코드 수정 (16~22라인 원본 및 수정)
// 원본
if ($member[mb_level] < $board[bo_download_level]) {
 $alert_msg = "다운로드 권한이 없습니다.";
 if ($member[mb_id]) alert($alert_msg);
 else alert($alert_msg. "\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id&$qstr&url=".urlencode("$g4[bbs_path]/board.php?bo_table=$bo_table&wr_id=$wr_id"));
}

// 수정
//if ($member[mb_level] < $board[bo_download_level]) {
// $alert_msg = "다운로드 권한이 없습니다.";
// if ($member[mb_id])
// alert($alert_msg);
// else
// alert($alert_msg. "\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id&$qstr&url=".urlencode("$g4[bbs_path]/board.php?bo_table=$bo_table&wr_id=$wr_id"));
//}

2. 게시판 스킨(view.skin.php) 수정

사용 중인 게시판 스킨의 view.skin.php 파일을 열어 가변 파일 출력 부근의 코드를 수정합니다. 관리자 레벨(레벨 10 이상)일 경우 화면에 직접 다운로드 주소가 노출되도록 설정합니다.

  • 수정 예시 코드
// 가변 파일 출력부 수정
//echo "</a></td></tr>";
echo "</a>";
if($member[mb_level] >= 10) { // 권한체크
 echo "<br />http://홈페이지주소/gnuboard/bbs/download2.php?bo_table={$bo_table}&wr_id={$wr_id}&no={$i}";
}
echo "</td></tr>";

3. 적용 결과 확인

  • 관리자 계정으로 게시물 상세 페이지에 접속하여 첨부파일 하단에 직접 다운로드 URL이 표시되는지 확인합니다.
  • 출력된 링크를 복사하여 외부에서 로그인 없이 파일 다운로드가 정상 작동하는지 테스트합니다.

주의사항: 세션 체크와 권한 검증 코드를 우회하므로 보안 이슈가 발생할 수 있습니다.

첨부파일 다운로드 링크 외부 추출 시 보안 이슈와 대비 방안

그누보드 환경에서 첨부파일을 외부나 다른 곳에서 직접 사용할 수 있도록 download.php 파일의 세션 체크 및 다운로드 권한 체크 코드를 주석 처리하여 우회하는 경우, 다음과 같은 보안 문제가 발생할 수 있습니다.

발생 가능한 보안 이슈

  • 권한 검증 누락 및 무단 다운로드: 원래 그누보드는 게시물 조회 시 생성되는 세션(ss_view_{$bo_table}_{$wr_id})과 게시판 설정된 회원 다운로드 레벨($board[bo_download_level])을 검사하여 파일 접근을 통제합니다. 해당 코드를 해제하면 로그인 여부나 다운로드 권한, 게시물 조회 세션과 무관하게 누구나 URL만 알면 파일을 직접 다운로드할 수 있게 됩니다.
  • 직접 링크 노출에 따른 리스크: 관리자 권한($member[mb_level] >= 10) 이상일 때 직접 다운로드 주소가 화면에 노출되도록 설정하더라도, 노출된 링크 주소가 외부에 유출될 경우 권한 통제 없이 파일에 접근할 수 있는 보안 취약점이 발생합니다.

안전한 운영을 위한 대비 방안

  • 접근 제한 및 대체 로직 검토: 불특정 다수에게 파일을 공개해야 하는 경우가 아니라면 세션 및 권한 체크 코드를 무력화하는 우회 방식 대신, 인증된 사용자나 특정 조건에서만 유효한 안전한 링크 생성 방식을 검토해야 합니다.
  • 원상복구 준비: 보안 이슈나 비정상적인 트래픽 증가 등 문제가 발견될 경우 즉시 생성한 download2.php 파일을 삭제하고 게시판 스킨 파일(view.skin.php)의 수정내역을 원본 상태로 복원할 수 있도록 준비해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.