inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

presigned URL에 대한 궁금증

해결된 질문

178

Ref

작성한 질문수 3

0

presigned URL를 실무에서 사용할려다가 지적받은게 업로드 권한을 클라이언트에 내려주고 횟수제한을 거는게 아니라 유효시간동안은 해당 url로 언제든지 업로드할 수 있어서 추후에 악성이미지 같은걸 업로드하면 보안적인 이슈가 있지않냐라고 말을 들었어요.

aws의 s3에서는 횟수제한 같은건 걸 수 없어서 일단 formdata로 올려보내고 multer 사용해서 받아서 처리하긴 했는데 강사님 경우에는 presigned URL할 때 어떻게 조치를 하시나요?

javascript presigned-url node image-upload s3

답변 2

0

노원두

안녕하세요! 피치플리님!

presignedUrl을 사용하여 파일을 서버에 전송하는 경우 아래의 구분에 따라서 달라질 것 같아요!
1. 다른 사람에게 공개되어도 되는 이미지 같은 것인가?
2. 다른 사람 또는 회사는 볼 수 없어야 하는 것인가?

 

만약 1번이라면, 악의적인 이미지에 대한 문제는 사실 백엔드를 통해서 AWS로 가더라도 해결되지 않습니다! 백엔드에서 마찬가지로, 검증 및 방어처리를 해주셔야 한답니다!
그러므로, presignedUrl을 사용하신다면, 가짜 S3를 하나 두셔서 백엔드라고 생각하시고, 여기에 올라온 이미지를 lambda로 검사하여 최종적으로 진짜S3에 넣어 주시면 되겠죠!


다음으로 2번이라면, 다른 사람은 볼 수 없도록 안전하게 백엔드를 경유하는 것이 더 좋아 보입니다!^^

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

피치플리님, presigned URL을 사용하는 것에 대한 보안 이슈에 대해 질문을 주셨네요. 비슷한 주제에 관한 답변을 코드캠프 강의의 Q&A 게시판에서 확인할 수 있습니다.

기본적으로 presigned URL은 유효시간 동안만 파일을 업로드할 수 있으며, 이를 통해 보안성을 확보할 수 있습니다. 하지만 특정 횟수 제한을 직접 설정하는 기능은 없기 때문에, 다음과 같은 추가 보안 조치를 고려해 볼 수 있습니다:

  1. Presigned URL의 유효 시간을 짧게 설정합니다. 예를 들어, 몇 분 이내로 제한하여 보안 리스크를 줄일 수 있습니다.
  2. 서버 측에서 파일 확인필터링을 할 수 있습니다. formdata와 multer를 사용하여 서버에서 파일을 처리하게 되면, 파일의 내용과 유형을 검사하고 불량 파일을 걸러낼 수 있습니다.

다음은 비슷한 주제에 대한 강의 Q&A 게시판 답변을 참고해 보시면 도움이 될 것입니다:
- 강의 정보에 대한 질문

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

83

2

강의 전체 소스 코드를 받고싶습니다.

0

76

2

fontawesome 사용 문의

0

77

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

81

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

73

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

85

3

강의 버전관련 문의입니다

0

102

2

Ubuntu 설치 관련

0

61

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

101

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

130

2

강의 전체 소스코드 받을수있을까요?

0

155

1

도커볼륨 마운트 관련

0

126

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

349

1

self-signed certificate in certificate chain 에러 발생

0

411

1

mongoose 설치 오류

0

142

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

281

2

08-06

0

177

3

구조랑 패턴 관련해서 질문

0

125

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1