Bagikan melalui


HttpHeaders.TryAddWithoutValidation Metode

Definisi

Mengembalikan nilai yang menunjukkan apakah header baru dan nilainya ditambahkan ke HttpHeaders koleksi tanpa memvalidasi nilai header.

Overload

Nama Deskripsi
TryAddWithoutValidation(String, IEnumerable<String>)

Mengembalikan nilai yang menunjukkan apakah header yang ditentukan dan nilainya ditambahkan ke HttpHeaders koleksi tanpa memvalidasi informasi yang disediakan.

TryAddWithoutValidation(String, String)

Mengembalikan nilai yang menunjukkan apakah header yang ditentukan dan nilainya ditambahkan ke HttpHeaders koleksi tanpa memvalidasi informasi yang disediakan.

TryAddWithoutValidation(String, IEnumerable<String>)

Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs

Mengembalikan nilai yang menunjukkan apakah header yang ditentukan dan nilainya ditambahkan ke HttpHeaders koleksi tanpa memvalidasi informasi yang disediakan.

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

Parameter

name
String

Header yang akan ditambahkan ke koleksi.

values
IEnumerable<String>

Nilai header.

Mengembalikan

true jika header name yang ditentukan dan values dapat ditambahkan ke koleksi; jika tidak false.

Keterangan

Metode ini melakukan validasi nama header, mengembalikan false nama yang tidak valid. Nama header diberlakukan untuk menjadi token HTTP yang valid, di mana token didefinisikan sebagai sekumpulan huruf, digit, atau simbol ASCII dari "!#$%&'*+-.^_`|~" set, yang cocok dengan definisi RFC9110. Karakter non-ASCII tidak diperbolehkan dalam nama header.

Metode ini tidak melakukan validasi nilai header apa pun. Nilai yang ditambahkan melalui metode ini diasumsikan tepercaya, dan logika aplikasi lainnya, seperti HttpClient, mungkin salah tingkah jika tidak terbentuk dengan baik.

Nilai yang ditambahkan tanpa validasi mungkin diamati saat menghitung koleksi atau kueri untuk nama header tertentu, bahkan ketika pemanggil tidak menggunakan NonValidated tampilan koleksi.

Perhatian

Metode ini tidak boleh digunakan dengan nilai yang tidak tepercaya, kecuali jika divalidasi dengan cukup.

Apa yang merupakan validasi "cukup" dapat bervariasi menurut kasus penggunaan. Minimal, melarang karakter baris baru untuk kebenaran protokol, misalnya, if (value.ContainsAny('\r', '\n', '\0')) throw .... Validasi ini harus memastikan bahwa aplikasi server melihat nilai dengan cara yang sama seperti aplikasi klien, dengan server sekarang bertanggung jawab untuk membersihkan inputnya sendiri dengan benar.

Untuk melindungi dari serangan seperti penyelundupan permintaan, penelepon sangat didorong untuk memvalidasi bahwa nilai-nilai ini tidak berisi karakter baris baru.

Berlaku untuk

TryAddWithoutValidation(String, String)

Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs
Sumber:
HttpHeaders.cs

Mengembalikan nilai yang menunjukkan apakah header yang ditentukan dan nilainya ditambahkan ke HttpHeaders koleksi tanpa memvalidasi informasi yang disediakan.

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

Parameter

name
String

Header yang akan ditambahkan ke koleksi.

value
String

Konten header.

Mengembalikan

true jika header name yang ditentukan dan value dapat ditambahkan ke koleksi; jika tidak false.

Keterangan

Metode ini melakukan validasi nama header, mengembalikan false nama yang tidak valid. Nama header diberlakukan untuk menjadi token HTTP yang valid, di mana token didefinisikan sebagai sekumpulan huruf, digit, atau simbol ASCII dari "!#$%&'*+-.^_`|~" set, yang cocok dengan definisi RFC9110. Karakter non-ASCII tidak diperbolehkan dalam nama header.

Metode ini tidak melakukan validasi nilai header apa pun. Nilai yang ditambahkan melalui metode ini diasumsikan tepercaya, dan logika aplikasi lainnya, seperti HttpClient, mungkin salah tingkah jika tidak terbentuk dengan baik.

Nilai yang ditambahkan tanpa validasi mungkin diamati saat menghitung koleksi atau kueri untuk nama header tertentu, bahkan ketika pemanggil tidak menggunakan NonValidated tampilan koleksi.

Perhatian

Metode ini tidak boleh digunakan dengan nilai yang tidak tepercaya, kecuali jika divalidasi dengan cukup.

Apa yang merupakan validasi "cukup" dapat bervariasi menurut kasus penggunaan. Minimal, melarang karakter baris baru untuk kebenaran protokol, misalnya, if (value.ContainsAny('\r', '\n', '\0')) throw .... Validasi ini harus memastikan bahwa aplikasi server melihat nilai dengan cara yang sama seperti aplikasi klien, dengan server sekarang bertanggung jawab untuk membersihkan inputnya sendiri dengan benar.

Untuk melindungi dari serangan seperti penyelundupan permintaan, penelepon sangat didorong untuk memvalidasi bahwa nilai-nilai ini tidak berisi karakter baris baru.

Berlaku untuk