Aracılığıyla paylaş


HttpHeaders.TryAddWithoutValidation Yöntem

Tanım

Üst bilgi değerlerini doğrulamadan koleksiyona yeni bir üst bilgi ve değerlerinin eklenip eklenmediğini HttpHeaders gösteren bir değer döndürür.

Aşırı Yüklemeler

Name Description
TryAddWithoutValidation(String, IEnumerable<String>)

Belirtilen üst bilginin ve değerlerinin sağlanan bilgileri doğrulamadan koleksiyona eklenip eklenmediğini HttpHeaders gösteren bir değer döndürür.

TryAddWithoutValidation(String, String)

Belirtilen üst bilginin ve değerinin sağlanan bilgileri doğrulamadan koleksiyona eklenip eklenmediğini HttpHeaders gösteren bir değer döndürür.

TryAddWithoutValidation(String, IEnumerable<String>)

Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs

Belirtilen üst bilginin ve değerlerinin sağlanan bilgileri doğrulamadan koleksiyona eklenip eklenmediğini HttpHeaders gösteren bir değer döndürür.

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

Parametreler

name
String

Koleksiyona eklenecek üst bilgi.

values
IEnumerable<String>

Üst bilginin değerleri.

Döndürülenler

true belirtilen üst bilgi name ve values koleksiyona eklenebiliyorsa; aksi takdirde false.

Açıklamalar

Bu yöntem, geçersiz adlar için döndürerek false üst bilgi adı doğrulaması gerçekleştirir. Üst bilgi adları geçerli HTTP belirteçleri olarak zorlanır; burada bir belirteç kümeden "!#$%&'*+-.^_`|~" herhangi bir ASCII harfi, rakam veya simge kümesi olarak tanımlanır ve RFC9110 tanımıyla eşleşir. Üst bilgi adında ASCII olmayan karakterlere izin verilmez.

Bu yöntem herhangi bir üst bilgi değeri doğrulaması gerçekleştirmez. Bu yöntemle eklenen değerlerin güvenilir olduğu varsayılır ve gibi HttpClientdiğer uygulama mantığı iyi biçimlendirilmemişse yanlış davranabilir.

Çağıran koleksiyonun görünümünü kullanmasa NonValidated bile, koleksiyon numaralandırılırken veya belirli üst bilgi adı için sorgulanırken doğrulama olmadan eklenen değerler gözlemlenebilir.

Dikkat

Bu yöntem, aksi takdirde yeterince doğrulanmadıkları sürece güvenilmeyen değerlerle asla kullanılmamalıdır.

"Yeterli" doğrulamayı oluşturan şey kullanım örneğine göre farklılık gösterebilir. En azından, protokol doğruluğu için yeni satır karakterlerini yasaklayın; örneğin, if (value.ContainsAny('\r', '\n', '\0')) throw .... Bu doğrulama, sunucu uygulamasının değerleri istemci uygulamasıyla aynı şekilde gördüğünden ve sunucunun artık kendi girişlerini düzgün bir şekilde temizlemekten sorumlu olduğundan emin olması gerekir.

İstek kaçakçılığı gibi saldırılara karşı koruma sağlamak için, arayanların bu değerlerin yeni satır karakterleri içermediğini doğrulamaları önemle tavsiye edilir.

Şunlara uygulanır

TryAddWithoutValidation(String, String)

Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs
Kaynak:
HttpHeaders.cs

Belirtilen üst bilginin ve değerinin sağlanan bilgileri doğrulamadan koleksiyona eklenip eklenmediğini HttpHeaders gösteren bir değer döndürür.

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

Parametreler

name
String

Koleksiyona eklenecek üst bilgi.

value
String

Üst bilginin içeriği.

Döndürülenler

true belirtilen üst bilgi name ve value koleksiyona eklenebiliyorsa; aksi takdirde false.

Açıklamalar

Bu yöntem, geçersiz adlar için döndürerek false üst bilgi adı doğrulaması gerçekleştirir. Üst bilgi adları geçerli HTTP belirteçleri olarak zorlanır; burada bir belirteç kümeden "!#$%&'*+-.^_`|~" herhangi bir ASCII harfi, rakam veya simge kümesi olarak tanımlanır ve RFC9110 tanımıyla eşleşir. Üst bilgi adında ASCII olmayan karakterlere izin verilmez.

Bu yöntem herhangi bir üst bilgi değeri doğrulaması gerçekleştirmez. Bu yöntemle eklenen değerlerin güvenilir olduğu varsayılır ve gibi HttpClientdiğer uygulama mantığı iyi biçimlendirilmemişse yanlış davranabilir.

Çağıran koleksiyonun görünümünü kullanmasa NonValidated bile, koleksiyon numaralandırılırken veya belirli üst bilgi adı için sorgulanırken doğrulama olmadan eklenen değerler gözlemlenebilir.

Dikkat

Bu yöntem, aksi takdirde yeterince doğrulanmadıkları sürece güvenilmeyen değerlerle asla kullanılmamalıdır.

"Yeterli" doğrulamayı oluşturan şey kullanım örneğine göre farklılık gösterebilir. En azından, protokol doğruluğu için yeni satır karakterlerini yasaklayın; örneğin, if (value.ContainsAny('\r', '\n', '\0')) throw .... Bu doğrulama, sunucu uygulamasının değerleri istemci uygulamasıyla aynı şekilde gördüğünden ve sunucunun artık kendi girişlerini düzgün bir şekilde temizlemekten sorumlu olduğundan emin olması gerekir.

İstek kaçakçılığı gibi saldırılara karşı koruma sağlamak için, arayanların bu değerlerin yeni satır karakterleri içermediğini doğrulamaları önemle tavsiye edilir.

Şunlara uygulanır