지금 타사 서버에서 JSON을 가져 오기 위해 jQuery와 JSONP를 사용하는 응용 프로그램을 작성 중입니다. 내 애플 리케이션 뒤에 주요 아이디어는 프론트 엔드 GUI를 로직과 타사 서버 프론트 엔드를 사용하는 사람이 쓸 수 있다는 것입니다.
어떤 보안 문제가이 문제에서 발생할 수 있는지 잘 모르겠지만 잠재적 인 문제로 확실히 볼 수 있습니다. 제 3 자 서버가 GUI를 실행할 내 사이트를 완전히 파괴하지 않도록하기 위해 취할 수있는 조치는 무엇입니까?jQuery에서 JSONP의 보안 문제
답변
JSONP는 타사 자바 스크립트를 실행하여 자바 스크립트 개체를 반환해야 함을 의미합니다. JSONP로로드 한 스크립트는 로컬 스크립트에서 수행 할 수있는 모든 작업을 수행 할 수 있으므로 두 가지 방법으로 XSS 공격 벡터입니다. JSONP 데이터를 요청한 타사가 악의적 인 사람이거나 데이터가 man-in으로 변경된 경우 - 중간 공격.
보안 연결을 통해 JSONP 만 수행하면 두 번째 유형의 공격을 피할 수 있습니다 (또는 보안되지 않은 연결을 통해 자신의 페이지가 전송되는 경우 무시할 수 있습니다.이 경우 사람이 쉽게 할 수있는 방법이 있습니다. - 중간 공격); 첫 번째 유형은 JSONP에 내재되어 있으므로 피할 수 없습니다. 소스를 신뢰할 때만 JSONP를 사용해야합니다. 그렇지 않으면 자신의 서버에 AJAX 게이트웨이를 설정하고이를 통해 JSON 데이터를 요청할 수 있습니다 (JSONP 서비스가 인증을 요구하지 않는 경우에만 작동 함). 또는 크로스 도메인 AJAX 요청을 사용합니다 (이전 브라우저에서는 작동하지 않음). JSONP 서버에서 특정 권한을 필요로 함).
글쎄 JSON은 실행 가능 기능이 아니라 객체를 설명합니다. JSONP이 수행하는 작업은 GET 요청의 결과를 클라이언트의 함수로 렌더링하고 실행하는 것입니다. 이렇게하면 가장 큰 보안 문제는 코드가 데이터로 수행하는 작업입니다.
타사가 신뢰할 수없는 경우 여기에 큰 문제가 있습니다. JSONP 코드를 보내는 대신 원하는 자바 스크립트를 전송하여 사이트를 손상 시키거나 사용자의 정보를 훔칠 수 있습니다.
JSONP는 페이지에 원격 데이터를 포함하여 <script>
태그로 작동합니다. 브라우저의 보안 제한을 피하기 위해 설계되었으므로 신뢰할 수있는 출처에서만 사용해야합니다.
이 문제에 대한 클라이언트 측 솔루션 만 존재하지 않습니다.
편집 : 아, 질문을 잘못 읽었습니다. 나는 클라이언트가 JSON을받을 것이라고 생각했다.
JSONP는 자바 스크립트 함수 호출에 래핑 된 JSON 객체입니다. 일반적으로 서버에서 작업하는 경우에는 unwrap 된 JSON 객체 자체를 요청할 것입니다. 그러나 JSONP 객체를 사용하더라도 eval()
을 실행하지 않는 한 자신을 해치는 것은 어렵습니다.
기존 JSON 라이브러리를 사용하고 있습니까? 그렇다면 괜찮을 것입니다.
직접 파싱 하시겠습니까? 그렇다면 eval
을 피하십시오. 그러면 괜찮을 것입니다.
- 1. JSONP의 보안
- 2. JSONP의 'P'는 무엇을 의미합니까?
- 3. JSON과 JSONP의 차이점은 무엇입니까?
- 4. 보안 문제
- 5. jQuery에서 $ .remove() 문제
- 6. IE에서 keypress (jquery에서) 문제
- 7. jQuery에서 slideToggle 문제
- 8. 정적 변수 문제 JQuery에서
- 9. Jquery에서 발생한 문제 removeOption
- 10. Iframe 보안 문제
- 11. Azure의 보안 문제
- 12. Java ScriptEngine의 보안 문제
- 13. Symfony2 보안 문제
- 14. BDC 보안 문제
- 15. Ajax 보안 문제
- 16. DB2 보안 문제
- 17. Maven 보안 문제
- 18. 보안 Access 데이터베이스 문제
- 19. FullTrust 보안 문제
- 20. 자바 스크립트 보안 문제
- 21. JBoss 보안 문제
- 22. 아약스 PHP는 보안 문제
- 23. extjs의 보안 문제
- 24. Asp.net CMD 보안 문제
- 25. osCommerce 보안 관련 문제
- 26. SSL 보안 문제
- 27. 작은 브라우저의 보안 문제
- 28. html 로그인 보안 문제
- 29. Silverlight의 WCF 보안 문제
- 30. 자바 JBoss의 보안 문제
음, 내 코드가 데이터를 가져 와서 (희망하는대로 특정 형식으로 제공) 사용자에게 표시하고 있습니다. 사용자가 상호 작용할 때 제 3 자 서버로 데이터를 다시 보냅니다. 내 가장 큰 우려는 누군가가 일부 자바 스크립트를 실행하여 내 사이트 사용자와 관련된 기능에 액세스 할 수있게하거나 내 사이트가 어떤 방식 으로든 과부하가 걸릴 수있는 자바 스크립트를 실행할 수 있다는 것입니다. JS가 클라이언트 측으로 보는 것에 대해 큰 걱정거리) –
Downvote와 의견이 없습니까? –