HttpHeaders.TryAddWithoutValidation Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een waarde die aangeeft of een nieuwe koptekst en de bijbehorende waarden aan de HttpHeaders verzameling zijn toegevoegd zonder de headerwaarden te valideren.
Overloads
| Name | Description |
|---|---|
| TryAddWithoutValidation(String, IEnumerable<String>) |
Retourneert een waarde die aangeeft of de opgegeven header en de bijbehorende waarden aan de HttpHeaders verzameling zijn toegevoegd zonder de opgegeven informatie te valideren. |
| TryAddWithoutValidation(String, String) |
Retourneert een waarde die aangeeft of de opgegeven header en de waarde ervan aan de HttpHeaders verzameling zijn toegevoegd zonder de opgegeven informatie te valideren. |
TryAddWithoutValidation(String, IEnumerable<String>)
Retourneert een waarde die aangeeft of de opgegeven header en de bijbehorende waarden aan de HttpHeaders verzameling zijn toegevoegd zonder de opgegeven informatie te valideren.
public:
bool TryAddWithoutValidation(System::String ^ name, System::Collections::Generic::IEnumerable<System::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
Parameters
- name
- String
De header die moet worden toegevoegd aan de verzameling.
- values
- IEnumerable<String>
De waarden van de koptekst.
Retouren
true als de opgegeven header name en values kan worden toegevoegd aan de verzameling; anders false.
Opmerkingen
Met deze methode wordt headernaamvalidatie uitgevoerd, die wordt geretourneerd false voor ongeldige namen. Headernamen worden afgedwongen om geldige HTTP-tokens te zijn, waarbij een token wordt gedefinieerd als een set ASCII-letters, cijfers of symbolen uit de "!#$%&'*+-.^_`|~" set, die overeenkomen met de definitie van RFC9110. Niet-ASCII-tekens zijn niet toegestaan in een headernaam.
Met deze methode wordt geen validatie van headerwaarden uitgevoerd. Waarden die via deze methode worden toegevoegd, worden ervan uitgegaan dat ze worden vertrouwd en dat andere toepassingslogica, zoals HttpClient, zich mogelijk misdraagt als ze niet goed zijn gevormd.
Waarden die zonder validatie worden toegevoegd, kunnen worden waargenomen bij het inventariseren van de verzameling of het opvragen van de specifieke headernaam, zelfs wanneer de aanroeper de weergave van de verzameling niet gebruikt NonValidated .
Caution
Deze methode mag nooit worden gebruikt met niet-vertrouwde waarden, tenzij ze anders voldoende zijn gevalideerd.
Wat 'voldoende' validatie is, kan per use-case verschillen. Verbied minimaal nieuwe regeltekens voor protocol correctheid, bijvoorbeeld if (value.ContainsAny('\r', '\n', '\0')) throw .... Deze validatie moet ervoor zorgen dat de servertoepassing waarden op dezelfde manier ziet als de clienttoepassing, waarbij de server nu verantwoordelijk is voor het correct opschonen van de eigen invoer.
Om te voorkomen dat aanvallen, zoals het smokkelen van aanvragen, worden bellers ten zeerste aangeraden te valideren dat deze waarden geen nieuwe regeltekens bevatten.
Van toepassing op
TryAddWithoutValidation(String, String)
Retourneert een waarde die aangeeft of de opgegeven header en de waarde ervan aan de HttpHeaders verzameling zijn toegevoegd zonder de opgegeven informatie te valideren.
public:
bool TryAddWithoutValidation(System::String ^ name, System::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
Parameters
- name
- String
De header die moet worden toegevoegd aan de verzameling.
- value
- String
De inhoud van de koptekst.
Retouren
true als de opgegeven header name en value kan worden toegevoegd aan de verzameling; anders false.
Opmerkingen
Met deze methode wordt headernaamvalidatie uitgevoerd, die wordt geretourneerd false voor ongeldige namen. Headernamen worden afgedwongen om geldige HTTP-tokens te zijn, waarbij een token wordt gedefinieerd als een set ASCII-letters, cijfers of symbolen uit de "!#$%&'*+-.^_`|~" set, die overeenkomen met de definitie van RFC9110. Niet-ASCII-tekens zijn niet toegestaan in een headernaam.
Met deze methode wordt geen validatie van headerwaarden uitgevoerd. Waarden die via deze methode worden toegevoegd, worden ervan uitgegaan dat ze worden vertrouwd en dat andere toepassingslogica, zoals HttpClient, zich mogelijk misdraagt als ze niet goed zijn gevormd.
Waarden die zonder validatie worden toegevoegd, kunnen worden waargenomen bij het inventariseren van de verzameling of het opvragen van de specifieke headernaam, zelfs wanneer de aanroeper de weergave van de verzameling niet gebruikt NonValidated .
Caution
Deze methode mag nooit worden gebruikt met niet-vertrouwde waarden, tenzij ze anders voldoende zijn gevalideerd.
Wat 'voldoende' validatie is, kan per use-case verschillen. Verbied minimaal nieuwe regeltekens voor protocol correctheid, bijvoorbeeld if (value.ContainsAny('\r', '\n', '\0')) throw .... Deze validatie moet ervoor zorgen dat de servertoepassing waarden op dezelfde manier ziet als de clienttoepassing, waarbij de server nu verantwoordelijk is voor het correct opschonen van de eigen invoer.
Om te voorkomen dat aanvallen, zoals het smokkelen van aanvragen, worden bellers ten zeerste aangeraden te valideren dat deze waarden geen nieuwe regeltekens bevatten.