아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

하얀고슴도치236
하얀고슴도치236

타사 API 를 ajax 로 요청시 header 에 포함해야되는 토큰키를 숨기는 방법은 없나요???

타사 API 를 ajax 로 요청시 header 에 포함해야되는 토큰키를 숨기는 방법은 없나요???

예를들어 아래와 같은 curl 이 있습니다.

curl -X POST https://reqbin.com/echo/post/json -H "Content-Type: application/json" -d "{\"login\":\"my_login\",\"password\":\"my_password\"}"

이걸 ajax 로 보내는데 이때 API KEY 를 넣어서 보내야 합니다.

클라이언트에서 ajax 로 요청시 숨길수가 없어보이는데 보안상 어떻게 처리해야 하나요???

    55글자 더 채워주세요.
    4개의 답변이 있어요!
    • pay2id.com
      pay2id.com

      pc 에서 pc 또는 pc 에서 서버등으로 외부로 자료를 전달할때는

      내용을 숨기기 위해서는 암호화를 할 수 밖에 없으나

      한쪽이 우리측 서버가 아닌 말씀하신 타사 서버의 api 라면?

      결과론적으로 1:1 방식으론 숨길수 없습니다.

      개발자들은 디버그모드를 통해서 충분히 내용을 해독할 수 있으니까요

      그 해결책은 중간에 프록시서버를 놓으시고, 프록시서버에서 사용자 - 프록시서버 - 타사api

      이렇게 콘트롤 해야 합니다.

    • ajax로 바로 타사 api를 호출하기보단

      ajax로 내부 서버언어(php,asp,jsp 등) 호출을 한후 호출된 페이지에서 타사 api를 전문에 맞춰서 통신을 하신다음에

      결과값을 받아오고 해당 값을 ajax로 리턴하여 해당 결과값으로 스크립트를 진행해 나가는 방법이 있을것 같습니다.

      상황에 따라 다르겠지만 제가 드린 방법도 고민을 해보시면 좋을것 같습니다.

    • 탈퇴한 사용자
      탈퇴한 사용자

      안녕하세요.

      shell에서 curl을 호출 하거나 웹브라우저에서 ajax 호출 시 보내는 값 자체를 숨기는 방법을 질문하신거라면 숨길 수 없을 듯 합니다.

      ajax를 back-end인 java나 node로 처리하는 경우에는 숨길 수 있는데, 서버 환경별로 설정파일을 분리하고 해당 설정파일은 형상관리 (git, svn 등)에 올리지 않으면 됩니다.

    • token key 라는 것이 ajax를 사용하기 위해, 즉 신원을 확인하기 위해 사용하는 것이 아닌가요?

      token key는 정책에 따라 영구적일 수도 일시적일 수도 있습니다.

      HTTP 통신은 비연결지향이라 토큰키와 같은 방법 이외에는 신뢰 수단을 확인하기 어려울 것입니다.

      만약 토큰 키가 특정 시간 이후에 만료가 된다면 토큰키가 노출되어도 큰 영향이 없을 것으로 보이네요.