2012-02-16 3 views
0

나는 내가 묻기로 한 것에 대한 대답은 '아니오'라고하지만, 어쨌든 누군가는 나에게 다른 생각을 줄 수 있으므로 어쨌든 묻는다.키를 노출시키지 않고 Ajax를 API로 변환

API 호출을 통해 타사 웹 서비스에서 정보를 가져 오는 제어판을 개발 중입니다. 브라우저에서 밀리 초 단위로 결과를 반환하는 AJAX와 통화를 할 수는 있지만이 서비스의 API 키가 공개됩니다. 액세스가 제한된 인트라넷 임에도 불구하고 직원이 사파리의 활동 창만보기 위해 비공개 API 키를 알아 내고 개인 키를 얻을 수 있습니다. 직원은 신뢰할 만하지만 신뢰할 수있는 개발 보안을 위험에 빠뜨리고 싶지 않습니다.

내가 지금하고있는 것은 CURL 호출로 전화를 걸기 PHP를 AJAXing하는 것이지만 2-3 초 정도 걸리므로 PHP 자체는 아니고 타사 서버로가는 공유 호스팅과 다시 .

브라우저가 개인 키를 공개하지 않고 API에 직접 요청하도록하는 방법이 있습니까? 나는 그것이 불가능하다고 생각하지만 아마도 누군가가 더 나은 아이디어를 가지고 있기 때문에 시나리오를 공유하고있다. (정보를 두 번째로 가져온 정보를 가져 오기 때문에 캐쉬를 피하려고한다)

나는 문제가되지 않는다. 이와 관련 : Mac OS Terminal 또는 로컬 Apache에서 CURL을 통해 API 호출을 수행하면 결과를 얻기 위해 매번 12 초가 걸리지 만 똑같은 컴퓨터와 연결의 브라우저는 밀리 초 단위로 가져옵니다. CURL이 내부적으로 어떻게 작동하는지 잘 모르겠지만 CURL은 느린 메커니즘이거나 Mac에서 잘 작동하지 않습니다. 브라우저가 서비스를 requestring 때

감사

답변

1

아니요, 자바 스크립트 코드가 클라이언트 컴퓨터로 전송되어 실행되기 때문에 어떤 방식 으로든 API 키를 공개하지 않는 방법은 없습니다. 지식이 풍부한 사용자는 헤더 요청자/패킷 스니퍼를 사용하여 API 요청에서 일반 텍스트 키를 추출 할 수 있으므로 암호화/난독 처리는 무의미합니다.

사용자에게 키를 노출하지 못하게하는 유일한 방법은 사용자가 요청을 받도록하는 것이 아니라 요청을 프록 싱하는 것입니다.

1

아니, 사용자가 키를 도청에 allways 수 있습니다. 따라서 프록시를 PHP로 사용하는 것이 좋은 해결책입니다.