테스트 사이트 - 개발 중인 베타 버전입니다

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

seiblog-nandsoft
· 1년 전 · 206 · 1
![스크린샷 2024-05-28 085544](https://github.com/gnuboard/g6/assets/155944061/b7ecc833-27a0-4852-8230-f43bf73b18e4)
![스크린샷 2024-05-28 085550](https://github.com/gnuboard/g6/assets/155944061/c062d959-e72d-4427-90ea-7a84d543dd96)

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

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

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

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

![image](https://github.com/gnuboard/g6/assets/155944061/1da30e11-050f-49bc-82e5-67c47251e86c)

![image](https://github.com/gnuboard/g6/assets/155944061/47029103-058a-406b-a569-dcff4c4dbcbf)

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

![image](https://github.com/gnuboard/g6/assets/155944061/b9b88880-6ce9-4cf0-8725-89b3278a6093)

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

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

![image](https://github.com/gnuboard/g6/assets/155944061/9e081d1d-baa8-4cc4-830f-230ec0fb2519)

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


댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

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

요청 본문(Body)에 Field 값이 누락되었다고 나오는 원인은 `wr_content` 전달이 누락되었기 때문에 나오는 것입니다.
`wr_content`값은 빈값 여부와 상관없이 전달되야 합니다.
```
{
wr_content: ""
}
```

![스크랩 문서 설명](https://github.com/gnuboard/g6/assets/57935683/a20a0dfc-ca5e-4d7c-9cf0-dfb9a05b34e5)



그리고 #545 에서도 말씀드렸다시피, 요청 본문에서는 `api/v1/models/scrap.py` > `CreateScrap` 클래스에 선언된 `wr_content` 외의 변수들은 입력 여부와 관계 없이 무시되고 처리됨을 알려드립니다.

``` python
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)
```

마지막으로 비밀글 읽기 권한이 없는 글은 스크랩 하지 못하도록 유효성 검사를 추가해서 다음 패치때 적용하도록 하겠습니다.

감사합니다 :)



게시글 목록

번호 제목
194
186
183
182
180
177
176
175
174
173
172
171
170
167
166
165
162
161
158
157