2017-02-10 9 views
-2

JavaScript에서 Azure API 앱을 호출하려고합니다. 응용 프로그램이 실행되는 도메인 (mydonain.org parameter1, mydomain.com parameter2)을 기반으로 API를 통해 백엔드에 매개 변수를 보내야합니다. 그러나 사용자로부터이 매개 변수를 숨길 필요가 있습니다 (사용자가 마우스 오른쪽 버튼을 클릭하여 JavaScript 코드를 볼 때 매개 변수를 볼 수 없음).API 호출에서 쿼리 문자열 숨기기

API에서이 매개 변수를 API 앱을 통해 백엔드로 보내고 사용자에게 보이지 않게하려면 어떻게해야합니까?

$.getJSON("api/searchItems/" + myparam, 
    function (Data) { 
    ... 
    }); 

myParam에는 응용 프로그램이 실행되는 위치에 따라 다른 값이 있습니다. mydomain.com에서 실행되는 경우 1이고 mydomain.org에서 실행되는 경우 2 등입니다. 이지만 매개 변수가 무엇인지 알아 내서 API를 직접 호출 할 수 있으므로이 코드는 승인되지 않았습니다.

+1

코드를 입력하십시오 너는 지금까지 노력했다. – geeksal

+1

이것은 불가능합니다. – Danmoreng

+0

API는 요청의 출처를 알 수 있으므로이를 말할 필요가 없습니다. – Archer

답변

2

이 요청은 황금률을 깨뜨립니다. 클라이언트에있는 경우 클라이언트를 아무리 시도해도 기간을 찾을 수 있습니다.

두 가지 옵션이 있지만 세부 사항이 많지 않으므로 주관적입니다.

먼저 클라이언트는 자신의 JavaScript 코드를 쉽게 삽입하고 해싱 할 도메인을 결정할 수 있지만 도메인을 해싱 할 수 있습니다.

두 번째로 서버에서 클라이언트 데이터의 유효성을 검사하고 있습니까? 도메인을 세션 (100 % 자체를 보장하지는 않음)과 연결하고 스푸핑 된 도메인 요청을 거부하는 방법이 있습니까?

도메인 이름을 문자열로 전달할 때 보안 문제가있을 수 있습니다. 나는 이것이 폼과 관련이 없다고 추정한다. (아마 특정 도메인의 데이터를리스트에서 볼 수있다.)

마지막으로 어떤 서버 당신이 도메인 B에서 도메인 A에 대한 정보를 요청하지 않는 가정하면, 도메인 이름이 무엇인지 알 수 있도록하는 방법이 있어야합니다 사용하고있는 측 프로그래밍 언어

+0

아니요 도메인을 문자열로 보내지 않고 JavaScript에서 매개 변수를 보내지 않습니다. 그래서 내 서버 코드는 도메인을 찾아서 그것에 기반한 매개 변수를 주입해야합니다. – user217648

+0

나는 Azure에 익숙하지 않다. 클라이언트/서버/도메인 관계가 도메인 a가 항상 도메인 a인지 아니면 클라이언트와 서버가 도메인 a와 b를 혼합 할 수 있는지 명확히하지 않았습니다. 또한이 목표 달성에 도움이되는 목표와 관련하여 제공되는 상황이 전혀 없으므로 현재의 2 차 목표는 처음부터 무효가 될 수 있습니다. – John