Armazenando imagens valiosas de alta resolução antes do root

3

Eu tenho um site de fotos de celebridades movimentadas e estou tentando esconder as fotos por trás do site raiz, para que elas não possam ser acessadas via URL, mas meu script ASP pode ler a foto e enviá-la ao navegador em binário . Estou usando o Windows Server 2008 R2.

Gostaria de saber quais configurações de segurança devem estar na pasta que contém as fotos. Meu site está em c:\inetpub\vhosts\mydomain\httpdocs\website.asp e as fotos precisam ser armazenadas na unidade D aqui: d:\web-library-photos\thumbs\group233wedfsdf232eraa.jpg .

Consegui fazer isso funcionar simplesmente clicando em 'Compartilhar' nas propriedades de d:\web-library-photos e, em seguida, dando permissões de leitura / gravação 'Todos', mas sinto que estou fazendo algo errado.

O que devo fazer para tornar essa pasta segura, mas acessível para a conta de administrador do servidor e para os scripts do meu site? Quais propriedades 'Compartilhar' devo aplicar? Eu deveria estar compartilhando?

    
por PaparazzoKid 20.07.2012 / 17:43

1 resposta

2

Seu aplicativo ASP está sendo executado localmente no computador servidor e pode acessar os arquivos de imagem através da letra de unidade local e do caminho "D: ...". A funcionalidade "Compartilhamento" que você está vendo é usada para permitir que os computadores clientes acessem a pasta através do protocolo de compartilhamento de arquivos CIFS / SMB. Não é necessário usar "Compartilhamento" no aplicativo que você está descrevendo.

Seu aplicativo ASP é executado em um contexto de segurança definido pelo IIS. Por padrão, os usuários anônimos executam aplicativos ASP como a conta IUSR_machine-name (uma conta criada durante a instalação do IIS).

É necessário que a lista de controle de acesso (ACL) do NTFS para a pasta / arquivos que seu aplicativo ASP acessa permita que o aplicativo ASP acesse os arquivos. Qual permissão precisa ser definida na ACL é determinada pelo contexto de segurança em que o aplicativo ASP está sendo executado. Se o aplicativo estiver sendo executado como um usuário anônimo (ou seja, os usuários remotos não estiverem executando uma autenticação do Windows), a conta de usuário IUSR_machine-name precisará ter permissão concedida à pasta. As permissões NTFS normalmente permitem "Usuários / Leitura" e isso seria suficiente para o acesso.

Editar:

Sua captura de tela mostra a ACL, ou seja, as permissões concedidas a usuários e grupos específicos, aplicada a uma determinada pasta. Esta não é uma lista exaustiva de todas as contas de usuário que o computador servidor "conhece". Essa lista exaustiva seria acessível na ferramenta "Usuários e grupos locais" na ferramenta "Gerenciamento do computador".

Todas as ações executadas em uma máquina Windows Server são executadas dentro de um "contexto de segurança". Cada ação que um aplicativo solicita ao sistema operacional para executar em nome de um usuário deve ser atribuída a um determinado usuário ou ao próprio sistema operacional do computador (que, para todos os efeitos, também parece ser um usuário com o nome "SYSTEM"). ou "LocalSystem" e um número de série especial de identificador de segurança que o identifica como este usuário especial especial.

Quando um usuário acessa seu script ASP para exibir uma imagem, o IIS executa seu script e, por sua vez, o script solicita ao sistema operacional que leia os arquivos. Se o usuário não tiver autenticado no IIS por meio de um dos mecanismos de autenticação internos do IIS, o acesso do usuário, em relação ao sistema operacional, será considerado anônimo e executado usando a conta de usuário IUSR_machine-name. (Seu aplicativo ASP pode ter um componente de autenticação integrado, mas isso não influenciaria a concepção do Windows de "quem" é o usuário remoto - que só pode ser influenciado por um aplicativo ASP clássico usando os recursos de autenticação integrados do IIS.)

Seria muito além do escopo da sua pergunta fornecer uma explicação passo-a-passo de como o subsistema de segurança do Windows avalia a ACL em um arquivo ou pasta para determinar se um usuário recebe ou nega acesso. Você menciona que isso não é familiar para você, então eu recomendo encontrar uma referência que explica como funcionam as permissões NTFS. Você pode experimentar em um PC Windows com permissões NTFS e criar contas de usuários locais para ter uma ideia de como isso funciona também.

    
por 20.07.2012 / 18:26