inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

17-네트워크와 트러블슈팅

백엔드 서버 외부 접속 차단

해결된 질문

311

0516dmswjd

작성한 질문수 1

0

백엔드를 "https://api.example.com"

프론트엔드를 "https://example.com"

이렇게 배포했습니다. 그런데 백엔드 서버는 example.com 이 주소에서 api 요청만 가능하고,

https://api.example.com/graphql

은 주소창에 검색해도 접속 못하게 하고 싶습니다. 어떻게 해야할까요?

javascript node.js docker rest-api nestjs

답변 2

0

노원두

안녕하세요! 0516dmswjd님!

  1. 백엔드서버에서 CORS 설정하실 때, example.com 사이트만 허용하도록 수정해 주세요!

  2. 하지만, 서버 to 서버로는 요청이 가능하므로 요청 서버는 확인하여 허용해 주세요!

  3. 주소창에 playground를 막는 방법은 apollo/server를 사용하신다면, playground: false 옵션을 지정해주시면 간단하게 해결됩니다!

0

인프런 AI 인턴

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

0516dmswjd님의 요구사항을 해결하는 방법으로 먼저 백엔드 서버의 프론트엔드 도메인에 대한 접근만을 허용하고, 직접적인 접속을 차단하고자 하는 경우, CORS (Cross-Origin Resource Sharing) 설정을 통해 구현할 수 있습니다. Spring Boot 환경에서 CORS 설정은 다음과 같이 할 수 있습니다.

spring.graphql.cors.allowed-origins=https://example.com
spring.graphql.cors.allowed-methods=GET,POST

이렇게 설정하면, https://example.com에서 오는 요청에 대해서만 백엔드 서버가 응답하도록 설정할 수 있습니다. 하지만, 직접적인 브라우저 주소창을 통한 접속 차단은 이 설정만으로는 완전하지 않습니다. 주소창을 통한 접속은 서버 측에서 구분하기 어렵기 때문에 추가적인 방법이 필요합니다.

주소창을 통한 직접 접속을 차단하려면, 브라우저에서 보내는 특정 헤더 (예: Referer 헤더)를 검사하여, 이 헤더가 설정되어 있지 않거나 기대하는 도메인을 포함하지 않는 경우 접속을 막는 로직을 백엔드에 추가할 수 있습니다. 이 방법 역시 완전한 방법은 아니며, 일부 이용자에 의해 우회될 수 있습니다.

보안과 관련된 처리는 항상 전체 시스템 구조와 예상치 못한 상황을 고려하여 신중하게 설계되어야 합니다. 따라서 가능하다면 보안 전문가와 상의하는 것이 좋습니다.

참고하신다면 도움이 될 정보 출처입니다:

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

0

83

2

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

0

76

2

fontawesome 사용 문의

0

77

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

82

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

127

2

findOne 타입스크립트오류

0

109

1

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

0

350

1

self-signed certificate in certificate chain 에러 발생

0

413

1

mongoose 설치 오류

0

142

1

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

0

281

2

08-06

0

178

3

구조랑 패턴 관련해서 질문

0

125

2

mydocker

0

128

2

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

0

156

1