Compartilhar via


Elemento <add> para schemeSettings (Configurações de URI)

Adiciona uma configuração de esquema para um nome de esquema.

<configuration>
  <uri>
    <schemeSettings>
      <add>

Syntax

<add
  name="http|https"
  genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>  

Atributos e elementos

As seções a seguir descrevem os atributos, os elementos filho e os elementos pai

Atributos

Atributo Descrição
name O nome do esquema ao qual essa configuração se aplica. Os únicos valores compatíveis são name="http" e name="https".

{Attribute name} Atributo

Valor Descrição
genericUriParserOptions As opções do analisador para esse esquema. O único valor com suporte é genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Elementos filho

Nenhum

Elementos pai

Elemento Descrição
Elemento <schemeSettings> (Configurações de URI) Especifica como um Uri será analisado quanto a esquemas específicos.

Comentários

Por padrão, a classe System.Uri desfaz o escape de delimitadores de caminho codificados por porcentagem antes de executar a compactação do caminho. Isso foi implementado como um mecanismo de segurança contra ataques, como:

http://www.contoso.com/..%2F..%2F/Windows/System32/cmd.exe?/c+dir+c:\

Se esse URI for passado para os módulos que não manipulam corretamente os caracteres codificados por porcentagem, isso poderá resultar na execução do seguinte comando pelo servidor:

c:\Windows\System32\cmd.exe /c dir c:\

Por esse motivo, a classe System.Uri desfaz o escape de delimitadores de caminho e, em seguida, aplica a compactação de caminho. O resultado da passagem da URL mal-intencionada acima para o construtor de classe System.Uri resulta no seguinte URI:

http://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\

Esse comportamento padrão pode ser modificado para não desfazer o escape de delimitadores de caminho codificados por porcentagem usando a opção de configuração schemeSettings para um esquema específico.

Arquivos de configuração

Esse elemento pode ser usado no arquivo de configuração do aplicativo ou no arquivo de configuração do computador (Machine.config).

Exemplo

O exemplo a seguir mostra uma configuração usada pela classe Uri para dar suporte ao não escape de delimitadores de caminho codificados por porcentagem para o esquema http.

<configuration>  
  <uri>  
    <schemeSettings>  
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>  
    </schemeSettings>  
  </uri>  
</configuration>  

Confira também