HttpRequestValidationException Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Pengecualian yang dilemparkan ketika string input yang berpotensi berbahaya diterima dari klien sebagai bagian dari data permintaan. Kelas ini tidak dapat diwariskan.
public ref class HttpRequestValidationException sealed : System::Web::HttpException
public sealed class HttpRequestValidationException : System.Web.HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
inherit HttpException
[<System.Serializable>]
type HttpRequestValidationException = class
inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
- Warisan
- Atribut
Contoh
Contoh kode berikut menunjukkan cara memeriksa input pengguna berbahaya dengan menggunakan HttpRequestValidationException.
Penting
Contoh ini memiliki kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan. Secara default, ASP.NET halaman Web memvalidasi bahwa input pengguna tidak menyertakan elemen skrip atau HTML. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Button1_Click(object sender, EventArgs e)
{
Label1.Text = txt1.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox id="txt1" Runat="server" />
<asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
<br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Label1.Text = txt1.Text
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox id="txt1" Runat="server" />
<asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
<br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
</div>
</form>
</body>
</html>
Keterangan
Membatasi dan memvalidasi input pengguna sangat penting dalam aplikasi Web untuk mencegah serangan peretas yang mengandalkan string input berbahaya. Serangan pembuatan skrip lintas situs adalah salah satu contoh peretasan tersebut. Jenis data berbahaya atau tidak diinginkan lainnya dapat diteruskan dalam permintaan melalui berbagai bentuk input. Dengan membatasi jenis data yang diteruskan pada tingkat rendah dalam aplikasi, Anda dapat mencegah peristiwa yang tidak diinginkan, bahkan ketika programmer yang menggunakan kode Anda tidak menempatkan teknik validasi yang tepat.
Validasi permintaan mendeteksi input klien yang berpotensi berbahaya dan melemparkan pengecualian ini untuk membatalkan pemrosesan permintaan. Permintaan dibatalkan dapat menunjukkan upaya untuk membahayakan keamanan aplikasi Anda, seperti serangan scripting lintas situs. Sangat disarankan agar aplikasi Anda secara eksplisit memeriksa semua input mengenai permintaan dibatalkan. Namun, Anda dapat menonaktifkan validasi permintaan dengan mengatur validateRequest
atribut dalam direktif @ Page
ke false
, seperti yang ditunjukkan dalam contoh berikut:
<%@ Page validateRequest="false" %>
Untuk menonaktifkan validasi permintaan untuk aplikasi, Anda harus memodifikasi atau membuat file Web.config untuk aplikasi Anda dan mengatur validateRequest
atribut bagian pages
ke false
, seperti yang ditunjukkan dalam contoh berikut:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Untuk menonaktifkan validasi permintaan untuk semua aplikasi di server Anda, Anda dapat melakukan modifikasi ini ke file Machine.config.
Catatan
Sangat disarankan agar aplikasi Anda secara eksplisit memeriksa semua input yang digunakannya selain validasi permintaan yang dilakukan oleh ASP.NET. Fitur validasi permintaan tidak dapat menangkap semua serangan, terutama yang dibuat khusus terhadap logika aplikasi Anda.
Konstruktor
HttpRequestValidationException() |
Membuat instans HttpRequestValidationException baru kelas . |
HttpRequestValidationException(String) |
Membuat pengecualian baru HttpRequestValidationException dengan pesan kesalahan yang ditentukan. |
HttpRequestValidationException(String, Exception) |
Menginisialisasi instans HttpRequestValidationException baru kelas dengan pesan kesalahan tertentu dan referensi ke pengecualian dalam yang merupakan penyebab pengecualian. |
Properti
Data |
Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian. (Diperoleh dari Exception) |
ErrorCode |
|
HelpLink |
Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini. (Diperoleh dari Exception) |
HResult |
Mendapatkan atau mengatur HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu. (Diperoleh dari Exception) |
InnerException |
Mendapatkan instans Exception yang menyebabkan pengecualian saat ini. (Diperoleh dari Exception) |
Message |
Mendapatkan pesan yang menjelaskan pengecualian saat ini. (Diperoleh dari Exception) |
Source |
Get dan set nama aplikasi atau objek yang menyebabkan kesalahan. (Diperoleh dari Exception) |
StackTrace |
Mendapatkan representasi string dari bingkai langsung pada tumpukan panggilan. (Diperoleh dari Exception) |
TargetSite |
Mendapatkan metode yang melemparkan pengecualian saat ini. (Diperoleh dari Exception) |
WebEventCode |
Mendapatkan kode peristiwa yang terkait dengan pengecualian HTTP. (Diperoleh dari HttpException) |
Metode
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetBaseException() |
Ketika ditimpa di kelas turunan Exception , mengembalikan yang merupakan akar penyebab dari satu atau beberapa pengecualian berikutnya. (Diperoleh dari Exception) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetHtmlErrorMessage() |
Mendapatkan pesan kesalahan HTML untuk kembali ke klien. (Diperoleh dari HttpException) |
GetHttpCode() |
Mendapatkan kode status respons HTTP untuk kembali ke klien. (Diperoleh dari HttpException) |
GetObjectData(SerializationInfo, StreamingContext) |
Mendapatkan informasi tentang pengecualian dan menambahkannya ke SerializationInfo objek . (Diperoleh dari HttpException) |
GetType() |
Mendapatkan jenis runtime dari instans saat ini. (Diperoleh dari Exception) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang berisi HRESULT kesalahan. (Diperoleh dari ExternalException) |
Acara
SerializeObjectState |
Kedaluwarsa.
Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian. (Diperoleh dari Exception) |