문제

ASP.NET MVC를 사용하여 AJAX 상호 작용이있는 응용 프로그램을 개발하고 있습니다. 컨트롤러에 JSON 직렬화 데이터를 반환하는 JSONRESULT 메소드가 있습니다. 예를 들어 요청이있을 때 http://somesite.com/findwidgets/ MVC는 데이터를 JSON으로 직렬화하고 다시 보냅니다.

클라이언트 측에서 jQuery를 사용하여 AJAX 요청을 처리 한 다음 결과를 조작하고 있습니다. 데이터를받는 데 어려움이 없지만 요청할 수 있다는 것을 알았습니다. http://somesite.com/findwidgets/ 브라우저의 주소 표시 줄에서 JSON 데이터를 다운로드로 반환합니다.

또한 다른 사람들이 단순히 요청을하고 데이터를 사용하여 데이터를 가져올 수 없도록하려면 어떻게해야합니까? http://somesite.com/findwidgets/ ?

Cross Domain이 여기에 올바른 주제입니까, 아니면 다른 보안 문제와 대화하고 있습니까?

감사

도움이 되었습니까?

해결책

또한 다른 사람들이 단순히 요청을하고 데이터를 사용하여 데이터를 가져올 수 없도록하려면 어떻게해야합니까? http://somesite.com/findwidgets/ ?

당신이 설명하는 문제는 사람들이 다른 사이트에서 사람들이 자신의 양식에 게시하는 것을 막을 수있는 방법을 물었을 때 사람들이 언급하는 것과 동일합니다. 내가 본 유일한 합리적인 답변은 각 요청에 대해 키가 생성되는 일부 유형의 세션 키 시스템을 사용하고 각 후속 요청은 이전에 생성 된 키를 유효성으로 전달해야합니다. 키가 없거나 유효하지 않은 키로 도착하는 요청은 액세스가 거부됩니다.

나는 요청을 할 수 있다는 것을 알았습니다 http://somesite.com/findwidgets/브라우저의 주소 표시 줄에서 JSON 데이터를 다운로드로 반환합니다.

JSON은 텍스트 MIME 유형으로 인식되지 않으며 브라우저는 브라우저에 직접 텍스트 MIME 유형 만 표시합니다. 다른 것은 인라인으로 표시되지 않고 다운로드로 제공됩니다.

다른 팁

요청 호스트도 확인하고 현재 도메인으로 제한하십시오.

또한 컨트롤러의 isajaxRequest () 속성을 사용할 수 있습니다 (예를 들어 False- return null result). 다른 사이트에서 데이터를 게시/가져 오기 위해 request.urlreferrer 속성을 확인할 수 있습니다 (그러나 브라우저는 그것에 대해 거짓말을 할 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top