2009-09-10 3 views

답변

3

웹 메소드를 완벽하게 보호 할 수 없습니다. 웹 페이지에서 액세스하는 경우 클라이언트 브라우저에서 바로 액세스 할 수 있습니다.

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

+0

이것은 완전히 사실이 아닙니다. 당신은 역할, Antiforgery 토큰 등을 배치 할 수있는 세션 변수 [System.Web.Services.WebMethod (EnableSession = true)]를 배치 할 수 있습니다. 심지어는 동적 URL을 매번 생성 할 수 있습니다. 나는 Aspx 페이지와 aspx 웹 메소드를 같은 페이지에서 사용합니다. 페이지는 익명의 페이지가 아닙니다 .http : //www.dotnetbull.com/2012/06/security-in-aspnet-ajax-webservice.html –

1

예 WebMethod 특성을 추가하면 해당 메서드가 원격으로 호출 가능 해져 예를 들어 javascript를 사용하여 호출 할 수 있습니다. 제 3자가 전화를 걸 수 없도록하는 WebMethod를 노출해서는 안됩니다. 그러나 보안 및 웹 서비스와 관련된 자세한 내용은 다음을 참조하십시오. http://msdn.microsoft.com/en-us/magazine/cc188947.aspx

4

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

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

여기서는 ASPX 페이지에 추가 된 웹 메소드 보안에 대해 설명합니다. 웹 서비스의 경우 인증 및 권한 부여가 완전히 다르게 처리 될 수 있습니다. 예를 들어, 모든 요청에 ​​대해 자격 증명이 필요할 수 있으며 메서드 자체의 "봉투"또는 매개 변수의 일부일 수 있습니다. 웹 서비스 보안은 아마도 자체적 인 문제의 대상이 될 것입니다.

관련 문제