2015-01-14 8 views
3

내부 및 STATELESS 사용을 위해 .ASMX 웹 서비스에 대한 Jquery AJAX 호출을 사용하는 시스템이 있습니다. 예를 들어, 버튼을 누르면 Jquery 호출이 시작되어 새 사용자가 삽입됩니다.ASP.Net Web Forms 응용 프로그램의 Jquery에서 내부 용도로 사용되는 웹 서비스 (.asmx)를 안전하게 호출하려면 어떻게해야합니까?

이제 Jquery AJAX 호출이 사용자에 의해 동적으로 삽입된다는 문제가 있습니다. 사용자는 Javascript의 코드를 결정할 수 있으므로 웹 서비스에서 AddUser() 함수를 호출하거나 다른 작업을 수행 할 수 있습니다. 그런 다음 코드 조각이 동적으로 삽입되고 버튼이 사용자가 HTML 콘텐츠에 작성한 모든 자바 스크립트를 추가합니다.

사용자가 Jquery를 호출하고 특히 WS에서 AddUser() 함수를 호출하는 코드를 추가하는 경우 어떻게 안전하게 수행 할 수 있습니까? 이 AJAX 요청이 동일한 도메인에서 온다는 것을 어떻게 확신 할 수 있습니까? 모든 HTTP 요청 헤더를 조작 할 수 있다는 것을 알고 있으므로 AJAX 호출이 동일한 사이트에서 오는 것을 어떻게 확신 할 수 있습니까? 웹 서비스의 목적은 시스템의 내부 사용을 목적으로합니다. 외부 사용자가 JS 코드를 읽고 원하는만큼 추가 사용자를 복사하지 않기를 바랍니다.

토큰이나 신분증을 사용하고 싶지 않습니다. 이것은 상태없는 요청이며 사용자를 추가하고 누가 전화를 걸지를 제어하려고합니다.

나는 어떤 제안이라도 기꺼이받을 것이다. 미리 감사드립니다.

답변

1

내 의견으로는 그렇게 할 수 없습니다. 어떤 종류의 인증을 추가하거나 (사이트에 동일한 인증을 사용할 수있는 경우) AJAX 요청과 함께 전송되는 페이지에 토큰을 렌더링합니다. 물론 두 경우 모두 어떤 형태의 상태를 추가 할 수는 있지만 제 생각에는 같은 사이트에서 요청을 시작해야한다는 요구 사항이 상태를 추적하는 데 필요합니다.

+0

당신은 어떻게이 시나리오? 행동 것 나는 내부와 STATELESS 행동 Ajax 호출을 사용하여 웹 사이트의 일부이며 의존하지 않는, (AN ASMX 파일에서 PageMethods 또는 웹 메쏘드 같은 뭔가를) 수행하는 웹 사이트가 모든 사용자 상태. 아니 인증. 이 기능은 사이트의 내부 사용에 결정적인 역할을하지만 상태가없고 자바 스크립트로 작성되었으므로 페이지 소스를 보는 것만으로도 해를 끼치 지 원하는 사람이라면 누구나 볼 수 있고 사용할 수 있습니다. 내 질문은 : 어떤 상태를 전혀 사용하지 않고 어떻게이 작업을 보안 할 수 있습니까? –

+0

그리고 같은 사이트에서 토큰을 사용하는 다른 웹 서비스를 가지고 있기 때문에 Web.Config에서 외부 사용자/도메인에 대한 액세스를 거부 할 수 없다고 말해야합니다. –

+0

이러한 호출을 수행해야하는 실제 응용 프로그램에 대한 액세스를 어떻게 차단합니까? – Stilgar