같은 저장 버튼, 다른 운명
왼쪽은 로그인 없이 우회해서 저장을 시도한 것, 오른쪽은 로그인하고 저장한 것. 실제 서버 응답 그대로예요.
시크릿 창 vs 로그인
화면을 안 거치고 데이터베이스에 직접 글을 밀어 넣어 봤어요.
POST /rest/v1/posts
401 Unauthorized
"new row violates row-level
security policy for table \"posts\""
401 Unauthorized
"new row violates row-level
security policy for table \"posts\""
✗ 정책이 막았어요. 버튼이 아니라 금고가 잠긴 거예요.
폰 없이 브라우저에서 쓴 글
로그인한 나만 쓸 수 있는 글쓰기 검증
발행
POST /rest/v1/posts
201 Created — 홈 목록 맨 위에 등장
201 Created — 홈 목록 맨 위에 등장
✓ 출입증(로그인) + 정책(RLS)이 함께 통과시켰어요.
이 강의가 남기는 한 줄
숨김 ≠ 잠금. 글쓰기 링크를 숨기는 건 편의고, 진짜 보안은 데이터베이스의 정책이에요.
재미있는 건 정책 없이 로그인만 하고 저장해도 거부된다는 것(403) — 열쇠가 있어도
문이 없으면 못 들어가요. 문(정책)을 SQL 한 줄로 달아준 뒤에야 201이 나왔어요.