페이지가 있고 webmethods가 있습니다. ScriptManager를 통해 aspx 페이지에서 theese를 사용할 수 있습니다. 궁금합니다. WebMethods를 보호 할 수있는 방법은 누구나 페이지 외부에서 theese 메서드에 액세스 할 수 있습니까?다른 사람이 페이지 외부에서 내 WebMethod에 액세스 할 수 있습니까?
답변
웹 메소드를 완벽하게 보호 할 수 없습니다. 웹 페이지에서 액세스하는 경우 클라이언트 브라우저에서 바로 액세스 할 수 있습니다.
일종의 일회용 비밀번호/토큰을 포함하고 페이지가 렌더링 될 때 생성해야하는 추가 매개 변수를 추가 할 수 있습니다. 이렇게하면 실제로 사이트를 방문하지 않고도 누군가가 계속 웹 서비스를 사용하는 것이 더 어려워집니다.
예 WebMethod 특성을 추가하면 해당 메서드가 원격으로 호출 가능 해져 예를 들어 javascript를 사용하여 호출 할 수 있습니다. 제 3자가 전화를 걸 수 없도록하는 WebMethod를 노출해서는 안됩니다. 그러나 보안 및 웹 서비스와 관련된 자세한 내용은 다음을 참조하십시오. http://msdn.microsoft.com/en-us/magazine/cc188947.aspx
웹 메서드는 웹 페이지와 동일한 종류의 보안을 갖습니다. 사용자가 안전하게 액세스되고 있는지 확인해야하는 경우 작업을 허용하기 전에 유효한 세션, 인증 된 사용자 등을 확인하십시오. 웹 메소드에 대한 요청에는 요청을 작성한 사용자가 인증되었는지 여부를 판별하는 데 필요한 다양한 쿠키가 포함되어야합니다. 인증 된 사용자의 신원, 역할 등을 기반으로 요청을 처리해야하는지 여부를 결정할 수 있습니다. 웹 구성을 사용하여 페이지를 보호하는 경우 페이지에 적용되는 보안이 페이지의 웹 메소드에도 적용되어야합니다.
누군가가 브라우저와 관계없이 요청을 단순히 내 보내지 않는다는 보장은 없습니다 (즉, 요청은 항상 애플리케이션 UI 내에서 발생합니다). 귀하는 귀하의 페이지 중 어떤 것에 대해서도 보안 검사와 동일한 종류의 검사를 수행해야합니다.
여기서는 ASPX 페이지에 추가 된 웹 메소드 보안에 대해 설명합니다. 웹 서비스의 경우 인증 및 권한 부여가 완전히 다르게 처리 될 수 있습니다. 예를 들어, 모든 요청에 대해 자격 증명이 필요할 수 있으며 메서드 자체의 "봉투"또는 매개 변수의 일부일 수 있습니다. 웹 서비스 보안은 아마도 자체적 인 문제의 대상이 될 것입니다.
예.
하지만 secure them easily 수 있습니다.
- 1. Ajax AutoCompleteExtender .. 내 webmethod에 두 개의 문자열을 전달할 수 있습니까?
- 2. 내 모델에 넣은 방법을 외부에서 액세스 할 수 있는지 어떻게 확인할 수 있습니까?
- 3. 다른 클래스의 Java.util지도에 액세스 할 수 있습니까?
- 4. 다른 페이지 클래스에서 페이지 클래스 액세스
- 5. Apple iCloud - 다른 사람이 설명 할 수 있습니까
- 6. 다른 사람이 나에게 ASP.NET 신뢰 수준을 설명 할 수 있습니까?
- 7. '종료 프로세스'를 외부에서 감지 할 수 있습니까?
- 8. x : Name이있는 XAML 요소가 정의 된 클래스 외부에서 액세스 할 수 없게 할 수 있습니까?
- 9. 내 awstats에 액세스 할 수 awstats에 액세스 할 수
- 10. 페이지 액세스 제한은 지정된 페이지에서 입력 할 수 있습니까?
- 11. 컨트롤에서 페이지 클래스에 액세스 할 수 없습니다.
- 12. 익명 함수로 함수에 액세스 할 수 있습니까?
- 13. 다른 사용자가 내 svn repo에 액세스 할 수 없습니다
- 14. 외부에서 mysql에 액세스 할 수 있도록 서버를 구성하는 방법
- 15. 다른 테이블과의 관계 외부에서 편집 할 수있는 CoreData 테이블을 어떻게 유지 관리 할 수 있습니까?
- 16. Selenium IDE에서 페이지 액세스 대기 시간을 테스트 할 수 있습니까?
- 17. ASP.NET은 ListView.EmptyDataTemplate에서 공용 페이지 변수에 액세스 할 수 있습니까?
- 18. Facebook 페이지 통계 - Opengraph를 통해 액세스 할 수 있습니까?
- 19. 잠긴 사람이 누구인지 예상 할 수있는 사람이 없도록 svn에서 파일을 잠글 수 있습니까?
- 20. 왜 내 변수에 액세스 할 수 없습니까?
- 21. 웹 서버의 다른 포트에 액세스 할 수 있습니까?
- 22. xml을 액세스 할 수 있습니까?
- 23. CodeIgniter에서 다른 모델 내부에서 모델에 액세스 할 수 있습니까?
- 24. 결과 집합의 다른 행에 어떻게 액세스 할 수 있습니까?
- 25. 내 웹 사이트 또는 외부에서 사용자가 이동할 페이지 검색
- 26. 다른 플러그인에서 어떻게 플러그인 PreferenceStore에 액세스 할 수 있습니까?
- 27. 사람이 예외를 설명 할 수
- 28. 내 Site.Master 페이지 MVC에서 상속 할 수 있습니까?
- 29. SQLite 데이터베이스를 잠글 수 있습니까? 외부에서 열 수없고 테이블에 행을 추가 할 수 없기 때문에?
- 30. 디지털 배너가 내 Facebook 데이터에 액세스 할 수 있습니까?
이것은 완전히 사실이 아닙니다. 당신은 역할, Antiforgery 토큰 등을 배치 할 수있는 세션 변수 [System.Web.Services.WebMethod (EnableSession = true)]를 배치 할 수 있습니다. 심지어는 동적 URL을 매번 생성 할 수 있습니다. 나는 Aspx 페이지와 aspx 웹 메소드를 같은 페이지에서 사용합니다. 페이지는 익명의 페이지가 아닙니다 .http : //www.dotnetbull.com/2012/06/security-in-aspnet-ajax-webservice.html –