Sdílet prostřednictvím


HttpHeaders.TryAddWithoutValidation Metoda

Definice

Vrátí hodnotu, která určuje, jestli se do HttpHeaders kolekce přidala nová hlavička a její hodnoty bez ověření hodnot záhlaví.

Přetížení

Name Description
TryAddWithoutValidation(String, IEnumerable<String>)

Vrátí hodnotu, která určuje, jestli byla zadaná hlavička a její hodnoty přidány do HttpHeaders kolekce bez ověření zadaných informací.

TryAddWithoutValidation(String, String)

Vrátí hodnotu, která určuje, zda byla zadaná hlavička a její hodnota přidány do HttpHeaders kolekce bez ověření zadaných informací.

TryAddWithoutValidation(String, IEnumerable<String>)

Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs

Vrátí hodnotu, která určuje, jestli byla zadaná hlavička a její hodnoty přidány do HttpHeaders kolekce bez ověření zadaných informací.

public:
 bool TryAddWithoutValidation(System::String ^ name, System::Collections::Generic::IEnumerable<System::String ^> ^ values);
public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable<string> values);
public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable<string?> values);
member this.TryAddWithoutValidation : string * seq<string> -> bool
Public Function TryAddWithoutValidation (name As String, values As IEnumerable(Of String)) As Boolean

Parametry

name
String

Záhlaví, které chcete přidat do kolekce.

values
IEnumerable<String>

Hodnoty záhlaví.

Návraty

true je-li zadána hlavička name a values lze ji přidat do kolekce; jinak false.

Poznámky

Tato metoda provádí ověření názvu hlavičky a vrací false neplatné názvy. Názvy hlaviček se vynucují tak, aby byly platné tokeny HTTP, kde je token definován jako libovolná sada písmen ASCII, číslic nebo symbolů ze "!#$%&'*+-.^_`|~" sady, které odpovídají definici RFC9110. V názvu hlavičky nejsou povolené znaky jiné než ASCII.

Tato metoda neprovádí žádné ověření hodnoty hlavičky. Hodnoty přidané touto metodou se předpokládají jako důvěryhodné a jiné aplikační logiky, jako HttpClientje například , by mohly být chybné, pokud nejsou správně vytvořené.

Hodnoty přidané bez ověření můžou být pozorovány při vytváření výčtu kolekce nebo dotazování na konkrétní název záhlaví, i když volající nepoužívá NonValidated zobrazení kolekce.

Upozornění

Tato metoda nesmí být nikdy použita s nedůvěryhodnými hodnotami, pokud nebyly jinak dostatečně ověřeny.

To, co představuje "dostatečné" ověření, se může lišit podle případu použití. Minimálně zakažte znaky nového řádku pro správnost protokolu, if (value.ContainsAny('\r', '\n', '\0')) throw ...například . Toto ověření by mělo zajistit, aby serverová aplikace viděla hodnoty stejným způsobem jako klientská aplikace, přičemž server je teď zodpovědný za správnou sanitaci vlastních vstupů.

Aby se hlídaly útoky, jako je pašování žádostí, volajícím se důrazně doporučuje ověřit, že tyto hodnoty neobsahují nové znaky.

Platí pro

TryAddWithoutValidation(String, String)

Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs
Zdroj:
HttpHeaders.cs

Vrátí hodnotu, která určuje, zda byla zadaná hlavička a její hodnota přidány do HttpHeaders kolekce bez ověření zadaných informací.

public:
 bool TryAddWithoutValidation(System::String ^ name, System::String ^ value);
public bool TryAddWithoutValidation(string name, string value);
public bool TryAddWithoutValidation(string name, string? value);
member this.TryAddWithoutValidation : string * string -> bool
Public Function TryAddWithoutValidation (name As String, value As String) As Boolean

Parametry

name
String

Záhlaví, které chcete přidat do kolekce.

value
String

Obsah záhlaví.

Návraty

true je-li zadána hlavička name a value lze ji přidat do kolekce; jinak false.

Poznámky

Tato metoda provádí ověření názvu hlavičky a vrací false neplatné názvy. Názvy hlaviček se vynucují tak, aby byly platné tokeny HTTP, kde je token definován jako libovolná sada písmen ASCII, číslic nebo symbolů ze "!#$%&'*+-.^_`|~" sady, které odpovídají definici RFC9110. V názvu hlavičky nejsou povolené znaky jiné než ASCII.

Tato metoda neprovádí žádné ověření hodnoty hlavičky. Hodnoty přidané touto metodou se předpokládají jako důvěryhodné a jiné aplikační logiky, jako HttpClientje například , by mohly být chybné, pokud nejsou správně vytvořené.

Hodnoty přidané bez ověření můžou být pozorovány při vytváření výčtu kolekce nebo dotazování na konkrétní název záhlaví, i když volající nepoužívá NonValidated zobrazení kolekce.

Upozornění

Tato metoda nesmí být nikdy použita s nedůvěryhodnými hodnotami, pokud nebyly jinak dostatečně ověřeny.

To, co představuje "dostatečné" ověření, se může lišit podle případu použití. Minimálně zakažte znaky nového řádku pro správnost protokolu, if (value.ContainsAny('\r', '\n', '\0')) throw ...například . Toto ověření by mělo zajistit, aby serverová aplikace viděla hodnoty stejným způsobem jako klientská aplikace, přičemž server je teď zodpovědný za správnou sanitaci vlastních vstupů.

Aby se hlídaly útoky, jako je pašování žádostí, volajícím se důrazně doporučuje ověřit, že tyto hodnoty neobsahují nové znaky.

Platí pro