[rest_api] 비밀글을 읽지 않아도 스크랩 되는 버그 / body 값 누락 > 그누보드6 이슈

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드6 이슈

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

[rest_api] 비밀글을 읽지 않아도 스크랩 되는 버그 / body 값 누락 정보

[rest_api] 비밀글을 읽지 않아도 스크랩 되는 버그 / body 값 누락

본문

스크린샷 2024-05-28 085544 스크린샷 2024-05-28 085550

http://localhost:8000/api/v1/member/scraps/free/26

포스트맨으로 날리면 스크랩이 정상적으로 됩니다. 비밀글 읽기 권한이 없어도 스크랩 되는게 맞는건지 혹은 기획 방향이 맞는지는 잘 모르겠습니다.

아 물론 스크랩은 되도 읽기는 안됩니다.

어제 재현이 어렵다고 하신 내용은 아래에 추가 설명 하였습니다.

image

image

실제로 있는 게시글이며, body 필수 사항이 누락되었다고 말하고 있습니다.

image

파라미터에는 게시판 테이블 명 / 글 아이디를 포함하라고 안내 됩니다. 필수로

그렇지만, 아무거나 입력 해도 ... 스크랩이 가능합니다.

image

즉 필수 사항을 무력화 된다라고 보시면 됩니다. 위에 지금 스샷은 bo_table + wr_id 파라미터가 없음에도 스크랩이 정상적으로 됩니다.

추천
0

댓글 1개

@seiblog-nandsoft
필수사항이라고 말씀하신 bo_tablewr_id 값은 Request Body가 아닌 경로(Path) 에서 값을 전달하는 것이며
wr_content 값은 요청 본문(Request Body) 으로 전달되는 값 입니다.


요청 본문(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레벨 이상 댓글을 남길 수 있습니다.

전체 101
그누보드6 이슈 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT