백엔드 서버 외부 접속 차단
백엔드를 "https://api.example.com"
프론트엔드를 "https://example.com"
이렇게 배포했습니다. 그런데 백엔드 서버는 example.com 이 주소에서 api 요청만 가능하고,
https://api.example.com/graphql
은 주소창에 검색해도 접속 못하게 하고 싶습니다. 어떻게 해야할까요?
답변 2
0
안녕하세요! 0516dmswjd님!
백엔드서버에서 CORS 설정하실 때, example.com 사이트만 허용하도록 수정해 주세요!
하지만, 서버 to 서버로는 요청이 가능하므로 요청 서버는 확인하여 허용해 주세요!
주소창에 playground를 막는 방법은 apollo/server를 사용하신다면, playground: false 옵션을 지정해주시면 간단하게 해결됩니다!
0
안녕하세요, 인프런 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





