[제작기]버튼을 숨기는 것만으로는 부족했습니다 — 게시판 권한을 점검한 기록
게시판에서 수정 버튼을 내 글에만 보여주면 권한 처리가 끝난 것처럼 보입니다. 하지만 브라우저 화면은 사용자가 조작할 수 있습니다. Builders Korea에서는 화면의 안내와 데이터베이스의 허용 조건을 따로 확인했습니다.
이번에 지키려던 규칙
- 글 작성자는 로그인한 본인으로 기록됩니다.
- 일반 회원은 다른 사람의 글을 수정할 수 없습니다.
- 공지와 숨김 상태는 일반 회원이 지정할 수 없습니다.
- 조회수·추천수·댓글수는 요청 본문에서 받은 값을 그대로 믿지 않습니다.
- 공개되지 않은 글과 댓글은 일반 조회에 나타나지 않아야 합니다.
Supabase의 RLS는 행마다 접근을 허용할 조건을 정하는 기능입니다. 실제 서비스에서는 RLS와 데이터베이스의 제약·트리거를 함께 점검했습니다. RLS 공식 문서를 기본 자료로 사용했습니다.
실제로 발견한 문제
게시글 보호 함수가 실행되는 권한 문맥 때문에 일반 사용자 요청도 내부 관리자 실행처럼 판단될 수 있는 부분이 있었습니다. 화면에서는 멀쩡해 보여도 보호 로직의 전제가 어긋날 수 있는 문제였습니다.
함수의 실행 문맥을 고친 뒤, 승인된 임시 계정 두 개로 작성자와 다른 회원의 요청을 나눠 확인했습니다. 정상적인 댓글과 추천은 집계되면서, 보호 필드를 임의로 바꾸는 요청은 막혀야 했습니다.
성공 요청만으로는 판단할 수 없습니다
| 시도 | 기대하는 결과 |
|---|---|
| 내 글 수정 | 허용 |
| 다른 사람 글 수정 | 거부 |
| 자기 글 추천 | 거부 |
| 다른 사람 글 추천 | 허용, 집계 반영 |
| 숨김 대상 접근 | 일반 회원에게 비공개 |
검증이 끝난 임시 계정과 게시글·댓글·추천 데이터는 정리했습니다. 테스트 활동이 실제 회원 활동처럼 남지 않게 하기 위해서입니다.
작은 게시판에서도 중요한 질문은 “정상 사용자가 할 수 있는가?”와 “허용하지 않은 요청이 정말 막히는가?” 두 가지였습니다. 다음 기능을 추가할 때도 이 두 방향을 함께 확인하려 합니다.
댓글 0
불러오는 중…
댓글을 쓰려면 로그인해 주세요.