누군가가 페이지 외부에서 내 WebMethod에 액세스할 수 있나요?

StackOverflow https://stackoverflow.com/questions/1404925

  •  05-07-2019
  •  | 
  •  

문제

페이지가 있고 여기에 ScriptManager를 통해 aspx 페이지에서 이러한 메서드를 사용할 수 있는 웹 메서드가 있습니다. 누구든지 페이지 외부에서 이러한 메서드에 액세스할 수 있는지, WebMethod를 어떻게 보호할 수 있는지 궁금합니다.

도움이 되었습니까?

해결책

웹 방법을 완전히 확보하는 것은 불가능합니다. 결국, 웹 페이지에서 액세스하는 경우 클라이언트 브라우저에서 직접 액세스하고 있습니다.

일회성 비밀번호 / 토큰을 포함 해야하는 추가 매개 변수를 추가하고 페이지가 렌더링 될 때 하나를 생성 할 수 있습니다. 따라서 실제로 사이트를 방문하지 않고도 웹 서비스를 계속 사용하기가 더 어려워집니다.

다른 팁

귀하의 웹 방법은 귀하의 웹 페이지와 동일한 종류의 보안을 갖습니다.안전하게 액세스되고 있는지 확인해야 하는 경우 유효한 세션, 인증된 사용자 등을 확인하세요.행동을 허용하기 전에.웹 방식에 대한 요청에는 요청한 사용자가 인증되었는지 확인하는 데 필요한 다양한 쿠키가 포함되어야 합니다.인증된 사용자의 신원, 역할 등을 기반으로 합니다.요청을 처리해야 하는지 결정할 수 있습니다.웹 구성을 사용하여 페이지를 보호하는 경우 페이지에 적용되는 보안은 페이지의 웹 메서드에도 적용되어야 합니다.

누군가가 단순히 브라우저와 관계없이 요청을 발행하지 않을 것이라고 보장할 수는 없습니다(즉, 요청이 항상 애플리케이션의 UI 내에서 발생한다는 것).모든 페이지에 대해 동일한 종류의 보안 검사를 수행해야 합니다.

여기서는 ASPX 페이지에 추가된 웹 메서드 보안에 대해 이야기하고 있다는 점에 유의하세요.을 위한 웹 서비스, 인증과 승인은 완전히 다르게 처리될 수 있습니다.예를 들어 자격 증명은 모든 요청에 ​​필요할 수 있으며 "봉투"의 일부이거나 메서드 자체의 매개 변수일 수 있습니다.웹 서비스 보안은 아마도 그 자체로 문제가 되는 주제일 것입니다.

예 WebMethod 속성을 추가하면 해당 메소드가 원격으로 호출 할 수 있습니다. 즉, 예를 들어 JavaScript를 사용하여 호출 할 수 있습니다. 간단히 말해서 제 3자가 전화를 걸 수없는 웹 메드를 노출해서는 안됩니다. 그러나 보안 및 웹 서비스에 대한 자세한 내용은 다음을 참조하십시오. http://msdn.microsoft.com/en-us/magazine/cc188947.aspx

예.

하지만 당신은 할 수 있습니다 쉽게 확보하십시오.

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