2010-07-28 5 views
0

파일 관리 서브 시스템을 구현해야하는 SL 애플리케이션이 있습니다. files \ folders (그냥 설명)의 계층 적 구조가 있습니다. 또한 각 파일 \ 폴더에는 사용자 \ 그룹에 대한 자체 사용 권한이 있습니다. 파일을 다운로드 할 수있는 권한을 가진 한 명의 사용자가 다른 사용자에게 권한을 부여하지 못하도록 구현하고 싶습니다. 따라서 사용자가 다운로드 권한을 가지고 있다면 링크 www.site.com/file.rar를 다운로드하여 다운로드하십시오. 그러나 그는 허락없이 다른 사람에게이 링크를 줄 수 있습니다. 어떤 알고리즘이이 경우 더 적절합니까? 어떤 도움을 주시면 감사하겠습니다.공용 다운로드를위한 링크 보호

답변

2

웹 서버가 담당하고 파일 요청에 대한 인증 및 권한 부여를 제공 할 필요가 무신론자 개 언어 아니었다,이 도움이되기를 바랍니다. 이것이 일반적인 문제이므로 Silverlight에만 국한된 것은 아닙니다.

웹 서버는 현재 로그인 한 사용자 (ASP.NET을 사용하는 경우 Forms Auth 또는 Windows Auth와 같은 인증 방법 중 하나를 사용할 수 있음)에 대한 각 파일 다운로드 요청의 유효성을 검사해야합니다. 예를 들어,이 유효성 검사를 수행하고 다운로드를 허용하고 다운로드 파일의 바이트를 제공하는 HTTP 처리기가있을 수 있습니다. Here's 예를 들어, ASP.NET과 같이 계속 적용되는 것처럼 보입니다.

또는 파일 이름 대신 안전하게 생성 된 만료 (한 번 사용 하시겠습니까?) 토큰을 제공하여 권한이 부여 된 파일 요청에 매핑하고 필요할 때 다시 파일을 제공 할 수 있습니다. 이 기능은 여러면에서 관리하기가 더 어려우며 신중하게 수행하지 않으면 사용자 만족도가 떨어질 수 있습니다 (특히 다운로드가 중단되어 다시 시작해야하는 경우, 이전 토큰이 유효하지 않은 경우 등).

나는 모든 패턴이 모든 웹 플랫폼에서 사용 가능하기 때문에 기술의 특성을 무시하고 제어하고 관리하기가 더 쉽고 안정적이기 때문에 첫 번째 제안과 함께 할 것입니다.

0

데이터베이스에 사용 권한 정보를 저장할 수 있습니다. 그런 다음 각 사용자는 자신의 계정과 권한 집합을 갖게됩니다. 그런 다음 사용자 그룹 권한을 파일 그룹이나 개별 파일에 설정할 수 있습니다.

이것은 아마도 운영 체제 수준에 저장된 파일 사용 권한 정보를 사용하여 얻을 수도 있습니다.

그런 다음 파일 이름을 요청으로 사용하고 사용자 이름과 암호 조합을 확인한 다음 해당 파일이 해당 사용자에게 허용되는지 여부를 확인하는 동적 페이지를 만들 수 있습니다.

누군가가 해당 파일 링크로 이동하면 먼저 올바른 자격 증명을 제공하여 다운로드해야합니다. 그렇지 않으면 액세스가 거부됩니다.

나는 그것이 바로 실버 라이트 대답하지만

관련 문제