<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>