Bagikan melalui


HttpRequestValidationException Kelas

Definisi

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

HRESULT Mendapatkan kesalahan.

(Diperoleh dari ExternalException)
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)

Berlaku untuk