Segurança do asp.net 2.0 e asp.net 3.5 em servidores compartilhados

O .NET v1.1 não vem configurado corretamente para servidores compartilhados, como já vimos em outro artigo. O mesmo vale para o asp.net 2.0 e também o seu framework 3.5.

Por padrão, .NET 2.0 vem instalado com “Full trust”. By default .NET 2.0 is installed with Full trust. Microsoft recomenda utilizar “Medium Trust” para servidores compartilhados.

Após instalar o .Net Framework 2.0 em seu servidor, você precisará modificar algumas configurações, assim como é feito no asp.net v1.1.

Primeiramente, abra o arquivo web.config, localizado em: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG por padrão. (Você pode utilizar o notepad para abrir e editar este arquivo).

Localize o seguinte bloco de texto:

<location allowOverride="true">
<system.web>
<securityPolicy>
<trustLevel name="Full" policyFile="internal" />
<trustLevel name="High" policyFile="web_hightrust.config" />
<trustLevel name="Medium" policyFile="web_mediumtrust.config" />
<trustLevel name="Low"  policyFile="web_lowtrust.config" />
<trustLevel name="Minimal" policyFile="web_minimaltrust.config" />
</securityPolicy>
<trust level="Full" originUrl="" />
</system.web>
</location>

Nós precisaremos alterar a seguinte linha:

<location allowOverride="true">

para:

<location allowOverride="false">

isto certifica que os usuários não poderão alterar estas configurações em seus próprios web.config. Agora, mudaremos também a seguinte linha:

<trust level="Full" originUrl="" />

para

<trust level="Medium" originUrl=".*" />

Então, imediatamente após esta linha, adicione o seguinte:

<identity impersonate="true" userName="" password="" />

isto irá forçar o .NET 2.0 a rodar em “Medium Trust mode”, e ser executado sobre a conta anonima do IIS.
this is now forcing .NET 2.0 to run in Medium trust mode and to execute under the IIS anonomous user. Os principais inconvenientes de setar as configurações para Medium Trust são:

  • OleDbPermission não estará disponível. Significa que você não poderá utilizar ADO.NET e OLE DB data provider para acessar banco de dados. Entretanto, você poderá usar o SQL Server provider para acessar SQL Server databases.
  • EventLogPermission não estará disponível. Quer dizer que você não terá logs do asp.net no windows event.
  • ReflectionPermission não estará disponível. Você não poderá usar “reflection”.
  • RegistryPermission não estará disponível. Você não terá acesso ao registro.
  • WebPermission é restrita. Sua aplicação poderá se comunicar somente com a faixa de endereços que você definiu no elemento.
  • FileIOPermission é restrito. Só será possível acessar arquivos dentro da sua hierarquia da aplicação virtual.

Entretanto, ainda é possível criar um policy personalizado baseado no Medium trust, e permitir aplicações menos restritivas.Nós iremos cobrir alguns exemplos num próximo artigo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *