2009-09-28 9 views
2

우리는 Silverlight 사용 데이터 서비스를 호출하는 Silverlight 응용 프로그램을 보유하고 있습니다. Silverlight 앱은 인증되지 않은 일반 사용자에게 데이터를 제공해야하므로 로그인을 요구할 수 없습니다.실버 라이트 지원 데이터 서비스에 대한 액세스를 제한하는 방법은 무엇입니까?

우리는 Silverlight 응용 프로그램을 검사하는 데 시간을 들였던 일부 schmoe가 있습니다. 어떤 서비스를 호출했는지 파악한 후 자신의 클라이언트가 데이터를 버리고 자신의 사이트에 게시 할 수 있도록했습니다. 그의 것처럼 척해라. 우리는 이것을 막을 필요가있다.

어떻게 내 실버 라이트 응용 프로그램에서 만 동의 요청에 어떻게 든 내 데이터 서비스를 제한 할 수 있습니다 ? 내가 할 수-에서 clientaccesspolicy.xml 파일에 설정 도메인 URI 단지 실버 라이트 응용 프로그램이 앉아있는 도메인에서 서비스에 대한 액세스를 제한 (mydomain.com을 말)에 를 사용했습니다. 그래도 서비스는 여전히 도메인 외부의 클라이언트에 대한 요청을 처리하고 있습니다. (나는 SL 응용 프로그램을 우리의 통제하에있는 다른 도메인에 올려 놓음으로써 이것을 테스트했다.)

우리의 앱에서만 사용할 수 있도록 데이터 서비스를 제한하는 가장 좋은 방법은 무엇입니까? 감사!!!

SL 3 및 .NET 3.5를 사용하고 있습니다.

답변

1

clientaccesspolicy.xml은 Silverlight 응용 프로그램에 어떤 웹 서비스가 있는지 알려줍니다. 이 소비합니다. 사람들이 웹 서비스에 액세스하는 것을 방지하지 않습니다.

인증 로그인을 사용하지 않아도 사용해 볼 수 있습니다. 이렇게하면 'schmoes'가 웹 서비스에 액세스하는 것을 방지 할 수 있습니다.

또한 Dotfuscator를 사용하여 'schoes'가 Silverlight 응용 프로그램을 분해하고 로그인을받지 못하도록합니다.

+0

설명해 주셔서 감사합니다. 실제로 SOAP 헤더를 사용하여 개인 키를 전송하는 방법을 찾고 있는데 ... 난독 화를 의미하는 것입니다. 또한 HTTPS로 서비스를 추측하므로 정보를 유출 할 수 없습니다. 옳은? – eidylon

+0

그리고 dotfuscate하기 위해, 나는 당신이 xap 파일을 압축 해제했다고 가정 할 것이다. dll이 당신이 거기에 만들었던 무엇이든지를 점으로 찍은 다음, 다시 xap 파일로 다시 압축하는 것일까? – eidylon

+0

유선에서 SSL을 사용하면 정보가 안전합니다. 아직 실버 라이트 앱을 불투명하게 시도하지는 않았지만 지원하는 것으로 보입니다. http://preemptive.com/dotfuscator-professional-support-for-microsoft-silverlight-11-alpha.html –

1

실버 라이트 웹 서비스 보안은 ASP.NET 보안, AJAX에 노출, 특히 서비스에 사용하는 것과 동일한 패턴을 따른다. 가장 좋은 방법은 ASP.NET의 인증을 사용하는 것입니다.

RIA 서비스는이 문제를 처리하기 위해 더 나은 방법입니다. 이 도구는 ASP.NET 권한 부여를 기반으로하지만 클라이언트와 서버 측에서 자동으로 유효성을 검사하여 서비스 스푸핑에 대비합니다. 이 메소드를 사용하면 메소드에 권한이있는 액세스가 필요하다는 것을 나타내는 속성을 추가하고 특정 그룹 또는 사용자가 특정해야 할 필요가있는 경우 클라이언트 및 서버 측 권한을 처리 할 수 ​​있습니다.

와이어 측 보안 및 난독 처리 외에도 클라이언트는 브라우저에서 실행중인 Silverlight 응용 프로그램에 디버거를 연결할 수 있습니다. 이 부분은 example from MSDN Magazine's Security IQ Test, November 2008입니다.