2011-09-13 10 views
1

attask이라는 프로젝트 관리 서비스와 통신 할 REST 클라이언트를 개발 중입니다.JSONP를 사용하지 않는 이유가 있습니까?

내 REST API는 내 코드에서 사용하기 쉬운 간단한 JSON을 반환하기 때문에 편리합니다. 이 때문에 JQuery와의 인터페이스를 구축하기로 결정했습니다. 나는 빨리 Same Origin Policy 때문에 내 사이트에서 AJAX를 Attask API로 사용할 수 없다는 것을 발견했습니다.

내 첫 번째 생각은 내 자바 스크립트와 Attask API 사이에서 다리 역할을 할 RESTSharp을 사용하여 서버 측 휴식 클라이언트를 개발하는 것이 었습니다.

구현을 시작하기 전에 나는 JSONP을 발견했습니다. 많은 사람들이 익숙하다고 생각합니다.하지만 그것은 나에게 새로운 것입니다. Attask API는 JSONP를 지원합니다. JQuery는 기본적으로 JSONP를 지원하므로 갑자기 서버 측 개입이 필요없는 완전한 jQuery 인터페이스로 돌아 간다.

제 질문은 JSONP를 사용하지 않는 이유가 무엇입니까? 추가 마일을 나가서 서버 측 REST 클라이언트를 구축하고 실제 AJAX 호출을 사용하면 어떤 이점이 있습니까?

모든 의견을 환영합니다.

+0

JSONP가 완벽하다고 생각했을 것입니다. 요구 사항이 서버에서 요청 또는 응답을 처리하기를 원하는 경우가 아니면. 그리고 서버의 API를 사용하면 다른 사람이 돌보는 인증, 성능, 확장 성 등의 문제가 발생할 가능성이 있습니다. –

답변

6

JSONP는 사용자가 찾고있는 것과 정확히 같습니다. 동일 원산지 정책에 대한 해결책입니다. 이를 통해 동일 출처 정책이 피하려고했던 모든 보안 문제가 발생합니다. 장점은 신뢰할 수있는 특정 도메인을 선택한다는 것입니다. 단점은 해당 도메인이 귀하의 신뢰를 침해하기로 결정한 경우 귀하의 웹 페이지에서 임의의 자바 스크립트 코드를 실행할 수 있으므로 원하는 정보를 자신의 서버에 보낼 수 있다는 것입니다.

당신이 그들을 신뢰한다면, 그것을 찾으십시오. 그렇지 않으면 자신의 서버 측 프록시를 설정하십시오.

+0

아주 좋은 지적입니다! 나는 그런 생각조차하지 않았다. 또한 브라우저에 일반 텍스트로 자격 증명을 렌더링해야하기 때문에 API에 대한 인증이 큰 의문이된다는 것을 알게되었습니다. 내가 Attask를 신뢰하는 동안 나는 서버 측 개입을위한 충분한 위험과 문제라고 생각한다. 의견을 보내 주셔서 감사합니다! – Chev

관련 문제