[rest_api] 비밀글을 읽지 않아도 스크랩 되는 버그 / body 값 누락 정보
[rest_api] 비밀글을 읽지 않아도 스크랩 되는 버그 / body 값 누락- seiblog-nandsoft 이름으로 검색
- 조회 96
- 댓글 1
관련링크
본문
http://localhost:8000/api/v1/member/scraps/free/26
포스트맨으로 날리면 스크랩이 정상적으로 됩니다. 비밀글 읽기 권한이 없어도 스크랩 되는게 맞는건지 혹은 기획 방향이 맞는지는 잘 모르겠습니다.
아 물론 스크랩은 되도 읽기는 안됩니다.
어제 재현이 어렵다고 하신 내용은 아래에 추가 설명 하였습니다.
실제로 있는 게시글이며, body 필수 사항이 누락되었다고 말하고 있습니다.
파라미터에는 게시판 테이블 명 / 글 아이디를 포함하라고 안내 됩니다. 필수로
그렇지만, 아무거나 입력 해도 ... 스크랩이 가능합니다.
즉 필수 사항을 무력화 된다라고 보시면 됩니다. 위에 지금 스샷은 bo_table + wr_id 파라미터가 없음에도 스크랩이 정상적으로 됩니다.
0
댓글 1개
@seiblog-nandsoft
필수사항이라고 말씀하신
과 bo_table
값은 Request Body가 아닌 경로(Path) 에서 값을 전달하는 것이며wr_id
값은 요청 본문(Request Body) 으로 전달되는 값 입니다.wr_content
요청 본문(Body)에 Field 값이 누락되었다고 나오는 원인은
전달이 누락되었기 때문에 나오는 것입니다.wr_content
값은 빈값 여부와 상관없이 전달되야 합니다.wr_content
{
wr_content: ""
}
그리고 #545 에서도 말씀드렸다시피, 요청 본문에서는
> api/v1/models/scrap.py
클래스에 선언된 CreateScrap
외의 변수들은 입력 여부와 관계 없이 무시되고 처리됨을 알려드립니다.wr_content
class CreateScrap(BaseModel):
"""스크랩 생성 모델"""
wr_content: str = Body(
default="",
title="댓글",
description="스크랩 시 추가할 댓글 내용"
)
@field_validator('wr_content', mode='after')
@classmethod
def sanitize_wr_content(cls, v: str):
"""댓글 내용 Stored XSS 방지 필터링"""
return sanitizer.get_cleaned_data(v)
마지막으로 비밀글 읽기 권한이 없는 글은 스크랩 하지 못하도록 유효성 검사를 추가해서 다음 패치때 적용하도록 하겠습니다.
감사합니다 :)
90레벨 이상 댓글을 남길 수 있습니다.