Dela via


<lägg till> element för schemeSettings (URI-inställningar)

Lägger till en schemainställning för ett schemanamn.

<Konfiguration>
  <Uri>
    <schemeSettings>
      <Add>

Syntax

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

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element

Attribut

Attribut Beskrivning
name Schemanamnet som den här inställningen gäller för. De enda värden som stöds är name="http" och name="https".

{Attributnamn} Attributet

Värde Beskrivning
genericUriParserOptions Parsningsalternativen för det här schemat. Det enda värde som stöds är genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Underordnade element

Ingen

Överordnade element

Element Beskrivning
<schemeSettings-element> (URI-inställningar) Anger hur en Uri ska parsas för specifika scheman.

Kommentarer

Som standard System.Uri tar klassen bort procentkodade sökvägsavgränsare innan sökvägskomprimering körs. Detta implementerades som en säkerhetsmekanism mot attacker som följande:

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

Om den här URI:n skickas till moduler som inte hanterar procentkodade tecken korrekt kan det resultera i att följande kommando körs av servern:

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

Därför System.Uri avmarkerar klassen först sökvägsavgränsare och tillämpar sedan sökvägskomprimering. Resultatet av att skicka den skadliga URL:en ovan till System.Uri klasskonstruktorn resulterar i följande URI:

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

Det här standardbeteendet kan ändras till att inte ta bort escape-procentkodade sökvägsavgränsare med konfigurationsalternativet schemeSettings för ett specifikt schema.

Konfigurationsfiler

Det här elementet kan användas i programkonfigurationsfilen eller datorkonfigurationsfilen (Machine.config).

Exempel

I följande exempel visas en konfiguration som används av Uri klassen för att stödja att inte undantaga procentkodade sökvägsavgränsare för HTTP-schemat.

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

Se även