그누보드 특정 게시판 관리자 외 사용자 글 삭제 제한 방법
페이지 정보

본문
그누보드 특정 게시판에서 일반 사용자의 임의 글 삭제를 방지하기 위해 view.skin.php와 delete.head.skin.php 파일을 수정하는 구체적인 절차를 확인합니다.
그누보드 특정 게시판 관리자 외 사용자 삭제 버튼 숨기기
그누보드 특정 게시판에서 일반 사용자가 글을 등록한 뒤 임의로 삭제하는 것을 방지하기 위해, 게시판 스킨 폴더 내의 view.skin.php 파일을 수정하여 삭제 버튼을 제어할 수 있습니다. (단, 이 방법은 화면상의 버튼을 숨기는 것이며, URL 직접 접근을 통한 삭제는 별도의 조치가 필요합니다.)
view.skin.php 수정 방법
- 스킨 파일을 수정하기 전에 반드시 기존 파일을 백업합니다.
- 게시판 스킨 폴더 내의 view.skin.php 파일을 편집합니다.
- 파일 상단의 접근 제어 코드 아래에 특정 게시판 ID와 관리자 여부를 확인하는 조건을 추가하여 삭제 링크 변수를 비활성화합니다.
if ($bo_table == 'free' && !$is_admin) {
$delete_href = false;
}
free부분을 원하는 게시판 ID로 올바르게 입력했는지 확인해야 합니다.- 이 설정을 적용하면 상세 페이지 화면에서 관리자가 아닌 경우 삭제 버튼이 노출되지 않습니다.
삭제 접근 차단 파일 생성 방법
화면에서 삭제 버튼을 숨기는 것만으로는 URL 직접 접근을 통한 삭제 시도를 막을 수 없습니다. 이를 방지하기 위해 게시판 스킨 폴더에 delete.head.skin.php 파일을 새로 생성하여 서버 측에서 권한을 검증해야 합니다.
파일 생성 및 코드 작성
게시판 스킨 폴더 내에 delete.head.skin.php 파일을 만들고 아래 코드를 추가합니다. free 부분에는 원하는 게시판 ID를 올바르게 입력해야 합니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if ($bo_table == 'free' && !$is_admin) {
alert("삭제 권한이 없습니다.");
}
?>
이 코드를 추가하면 관리자가 아닌 사용자가 삭제 URL을 직접 호출하여 시도할 때 경고 문구가 출력되면서 차단됩니다.
적용 후 확인 방법
작업을 마친 뒤에는 일반 사용자 계정으로 대상 게시판에 접속하여 직접 삭제 URL을 호출했을 때 차단 안내 문구가 정상적으로 출력되는지 점검합니다.
코드 수정 전 백업 사항
스킨 파일을 수정하기 전에는 반드시 기존 파일을 백업해야 합니다. 또한 적용 과정에서 free 부분을 원하는 게시판 ID로 올바르게 입력했는지 확인해야 합니다.
적용 후 점검 사항
설정을 적용한 뒤에는 다음 두 가지 방법을 통해 정상적으로 차단되는지 점검합니다.
- 삭제 버튼 노출 확인: 일반 사용자 계정으로 대상 게시판에 접속하여 상세 페이지에서 삭제 버튼이 노출되지 않는지 확인합니다.
- URL 직접 접근 차단 확인: 직접 삭제 URL을 호출했을 때 차단 안내 문구가 정상적으로 출력되는지 점검합니다.
상황별 판단 및 행동 지침
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 일반 사용자의 글 삭제 버튼을 화면에서 숨기고 싶을 때 | view.skin.php 수정 | 파일을 백업한 뒤 상단 접근 제어 코드 아래에 $bo_table == '게시판ID' && !$is_admin 조건을 추가하여 $delete_href = false; 설정 |
| URL 직접 접근을 통한 삭제 시도까지 차단하고 싶을 때 | delete.head.skin.php 생성 | 게시판 스킨 폴더에 해당 파일을 생성하고 관리자 여부를 확인하여 alert()으로 차단하는 코드 작성 |
| 적용 후 정상 작동 여부를 확인하고 싶을 때 | 실효성 점검 | 일반 사용자 계정으로 접속하여 삭제 버튼 노출 여부와 직접 삭제 URL 호출 시 차단 문구 출력 확인 |
실전 FAQ
Q. 화면에서 버튼을 숨겼는데 URL 직접 접근으로 삭제가 가능합니까?
- 답변: 네, 가능합니다. 버튼을 숨기는 것은 화면 인터페이스 제어일 뿐이므로, URL 직접 접근을 통한 삭제를 막으려면
delete.head.skin.php파일을 생성하여 서버 측에서 권한을 검증하고 차단하는 코드를 반드시 함께 적용해야 합니다.
Q. 여러 게시판에 적용하려면 어떻게 합니까?
- 대안: 코드 내
free부분을 운영 중인 게시판 ID로 각각 변경하여 적용하십시오.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 첨부파일 다운로드 시 매번 포인트 차감 설정 방법 26.09.13
- 다음글그누보드 특정 게시판 비밀글 관리자 공용 비밀번호 자동 적용 방법 26.09.13
댓글목록
등록된 댓글이 없습니다.