Udostępnij za pośrednictwem


<schemeSettings> , element (ustawienia identyfikatora URI)

Określa sposób analizowania Uri dla określonych schematów.

<Konfiguracji>
  <Identyfikator uri>
    <schemeSettings>

Składnia

<schemeSettings>
</schemeSettings>  

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Brak

Elementy podrzędne

Element Opis
add Dodaje ustawienie schematu dla nazwy schematu.
Wyczyść Czyści wszystkie istniejące ustawienia schematu.
Usunąć Usuwa ustawienie schematu dla nazwy schematu.

Elementy nadrzędne

Element Opis
Identyfikator uri Zawiera ustawienia określające sposób obsługi adresów internetowych przez .NET Framework przy użyciu identyfikatorów URI( uniform resource identifiers).

Uwagi

Domyślnie System.Uri ograniczniki ścieżki zakodowanej w procentach klasy un-escapes 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 znaków zakodowanych procentowo, może to spowodować wykonanie następującego polecenia przez serwer:

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

Z tego powodu klasy najpierw usuwa ograniczniki ścieżki, System.Uri 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 uniknięć ograniczników ścieżki zakodowanej w procentach ucieczki przy użyciu opcji konfiguracji schemeSettings dla określonego schematu.

Pliki konfiguracji

Tego elementu można użyć w pliku konfiguracji aplikacji lub pliku konfiguracji maszyny (Machine.config).

Przykład

W poniższym przykładzie pokazano konfigurację używaną przez Uri klasę do obsługi ograniczników ścieżki zakodowanych procentowo dla schematu HTTP.

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

Informacje o elementach

Przestrzeń nazw: System

Zobacz też