<add> , element dla schemeSettings (ustawienia identyfikatora URI)
Dodaje ustawienie schematu dla nazwy schematu.
<Konfiguracji>
<Identyfikator uri>
<schemeSettings>
<Dodaj>
Składnia
<add
name="http|https"
genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne
Atrybuty
Atrybut | Opis |
---|---|
name | Nazwa schematu, dla którego to ustawienie ma zastosowanie. Jedynymi obsługiwanymi wartościami są name="http" i name="https". |
{Nazwa atrybutu} Atrybut
Wartość | Opis |
---|---|
Genericuriparseroptions | Opcje analizatora dla tego schematu. Jedyną obsługiwaną wartością jest genericUriParserOptions= "DontUnescapePathDotsAndSlashes". |
Elementy podrzędne
Brak
Elementy nadrzędne
Element | Opis |
---|---|
<schemeSettings> , element (ustawienia identyfikatora URI) | Określa sposób analizowania Uri poszczególnych schematów. |
Uwagi
Domyślnie System.Uri ograniczniki ścieżki zakodowanej w klasie un-escapes procent przed wykonaniem kompresji ścieżki. Zostało to zaimplementowane jako mechanizm zabezpieczeń przed atakami, takimi jak następujące:
http://www.contoso.com/..%2F..%2F/Windows/System32/cmd.exe?/c+dir+c:\
Jeśli ten identyfikator URI zostanie przekazany do modułów, które nie obsługują poprawnie zakodowanych w procentach znaków, może to spowodować wykonanie następującego polecenia przez serwer:
c:\Windows\System32\cmd.exe /c dir c:\
Z tego powodu System.Uri najpierw klasy un-escapes ograniczniki ścieżek, a następnie stosuje kompresję ścieżki. Wynikiem przekazania złośliwego adresu URL powyżej do System.Uri konstruktora klasy jest następujący identyfikator URI:
http://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\
To domyślne zachowanie można zmodyfikować, aby nie usuwać ograniczników ścieżki zakodowanej w formacie ucieczki przy użyciu opcji konfiguracji schemeSettings dla określonego schematu.
Pliki konfiguracji
Ten element może być używany w pliku konfiguracji aplikacji lub pliku konfiguracji maszyny (Machine.config).
Przykład
W poniższym przykładzie przedstawiono konfigurację używaną przez Uri klasę do obsługi ograniczników ścieżek zakodowanych procentowo dla schematu http.
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>