2008-10-02 3 views
3

우리는 호스트 설정을 원하지 않기 때문에 일부 비즈니스 사용자가 로컬 파일 시스템에서 실행할 수있는 작은 도구를 사용하고 있습니다.파일 시스템에서 실행되는 HTML/Javascript 앱, 보안 문제

기본적으로 HTML + Javascript (jQuery 사용)는 타사의 REST를 사용하여 일부 보고서를 가져옵니다.

문제는 FF3 및 IE는 AJAX 호출을 허용하지, 내가 얻을 :

Access to restricted URI denied" code: "1012 

를 분명히 그 간 스크립팅 (XSS) 문제 ... 나는 그것을 해결하려면 어떻게해야합니까? 반환 된 데이터는 XML 형식입니다.

내가 이런 식으로 일을하려고했다 :

$.get(productUrl, function (data){ 
    alert (data); 
}); 

편집 : ... 나는 (많은 빨간 테이프로 길)이에 대한 내부 호스트를 설정하고 있지 않다 명확하게하기 및 우리는 검색된 데이터로 인해 이것을 외부에서 호스팅 할 수 없습니다.

EDIT # 2 : IFRAME을 사용하여 요청할 수 있음을 보여주는 약간의 테스트가 있습니다. 숨겨진 IFRAME을 사용하는 데있어서 단점이 있는지 아는 사람이 있습니까?

+0

iframe은 어떻게 작동합니까? – Greg

답변

2

비슷한 상황에서 내 해결책은 IE에서 인식하는 특수 HTML 주석 인 Mark Of The Web을 사용하는 것이 었습니다. 페이지를 다른 보안 영역에 배치합니다.

참조 : MSDN

+0

".. Internet Explorer를 사용하여 페이지가 저장된 위치의 보안 영역에서 웹 페이지가 강제로 실행되도록 설정 - 해당 보안 영역이 로컬 컴퓨터 영역보다 더 제한적인 경우"그러면 작동하지 않습니까? – Greg

+0

좋은 지적.MOTW를 추가하면 코드가 실행될 수 있기 때문에 다소 제한적인 "제한적"영역이 다소 혼란 스럽습니다. 어떻게 보느냐에 달려 있습니다. –

+0

"더 제한적"이라 함은 로컬 파일 시스템에서로드 할 수 없음을 의미합니다. –

-1

파이썬 설치 한 경우, 파일을 제공하는 웹 서버가 될 수 있습니다 간단

python -c “import SimpleHTTPServer;SimpleHTTPServer.test()” 

같은 편집 : 원래 포스터가이 방법을 사용할 수는 없지만, 일반적으로 나는이에 대한 방법이라고 생각 이 문제를 가진 미래의 사용자를 위해이 특정 문제를 해결하십시오.

+0

워크 스테이션에는 서버 정책이 없습니다 ... 이것은 사용자를 스스로 보호하기위한 것입니다. – FlySwat

-1

을 사용하면 서버가 데이터를 제공하고 제어하는? 그렇다면 콜백을 설정할 수 있습니다. 기본 개념은 들어오는 데이터 (XML 문자열)를 처리하는 스크립트에 함수가 있어야한다는 것입니다. 그런 다음 서버는 문자열을 인수로 사용하여 콜백 함수의 JavaScript 스 니펫을 사용하여 요청에 응답합니다. 그리고 AJAX를 사용하는 대신 페이지에 새 스크립트 태그를 추가합니다. 이것은 JSONP의 기초입니다. 이런 식으로 보입니다.

로컬 페이지 스크립트가 페이지에 추가 할 때

<script> 
    function callback(str) { 
     alert(str); 
    } 
    function makeRequest(param) { 
     var s = document.createElement('script'); 
     s.src = 'http://serveranywhere/script.bla?' + params; 
     document.getElementsByTagName[0].appendChild(s); 
    } 
</script> 

원격 서버가 지금

callback('<xml><that><does><something></something></does></that></xml>'); 

를 반환 함수 콜백 당신이 제공하는 문자열을 실행됩니다. 그리고 jQuery는 $ .ajax 호출에서 JSONP를 사용하여이 모든 작업을 수행한다. 희망이 도움이됩니다.

관련 문제