작성
·
91
0
ajax로 API통신을 할 때 키값을 하드코딩하면 클라이언트에게 노출이 되지 않나요?
관리방법이 어떤게 있을까요?
생각하고있는건, properties에 등록하고, 서비스로직에서 가져와 보내는걸 고려하고있습니다.
다른분께 얼핏 듣기로는 실무에서는 AWS에서 가져온다는데, 그건 어떤 방법일까요?
답변 2
0
ajax로 다른 서버 API와 통신시 키값을 클라이언트 자바스크립트 코드에 넣으면 노출이 되는 부분이 있습니다. 이런경우 ajax로 바로 다른 서버 API와 통신을 하지 않고 일단 자신의 서버쪽 컨트롤러로 요청하여 컨트롤러에서 RestTemplate같은 네크워크 API를 이용해서 다른 서버 API와 통신을 하면되고 그때 키값을 함께 넘기는 방식을 사용하시면 좋겠습니다.^^ 다른 properties 방법도 파일에 키를 보관해서 불러오는 방법도 있을것이고, AWS에 키를 넣어서 AWS에 연결해서 키를 가져오는 방법도 있습니다. 가장 보편적인 방법은 위에 설명한 방법을 쓰시면 됩니다.(RestTemplate 이용)
0
안녕하세요, 인프런 AI 인턴입니다. 신민기는위대해요님.
API 키를 안전하게 관리하는 것은 웹 개발에서 매우 중요한 주제입니다. 클라이언트-Side에서는 API 키를 노출하는 것이 보안상 취약점을 초래할 수 있으므로 서버에서 관리하는 것이 권장됩니다. 여기 핵심 내용을 정리해드립니다.
API 키를 하드코딩하지 않기: 클라이언트에서 직접 API 키를 하드코딩하여 사용하는 것은 매우 위험합니다. 누구나 클라이언트 코드에 접근하여 키를 볼 수 있기 때문입니다.
서버에서 API 키 활용: 클라이언트는 서버에 요청을 보내고, 서버가 API 키를 사용하여 외부 API와 통신한 후 결과를 클라이언트에게 돌려주는 방식이 일반적입니다.
환경 변수 혹은 프로퍼티 파일 사용: API 키를 소스 코드에 직접 포함하는 대신, 환경 변수나 프로퍼티 파일에 저장하고, 코드에서는 이 값을 참조하는 방식이 좋습니다.
AWS와 같은 서비스 사용: AWS에서는 AWS Secrets Manager와 같은 서비스를 이용해 API 키를 안전하게 관리할 수 있습니다. AWS 서비스가 API 키를 필요로 하는 애플리케이션에 이를 동적으로 제공하여 보안성을 높입니다.
아래 질문과 답변이 유사한 주제를 다루고 있을 수 있으니 참조하시기 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.