Solusi untuk Kesalahan “error when exception”
Gambaran Umum Error
Kesalahan “error when exception” sering ditemui dalam pengembangan aplikasi berbasis web, khususnya dalam konteks ASP.NET dan pengolahan data dari formulir. Kesalahan ini umumnya muncul ketika ada masalah validasi pada data yang dikirim dari klien ke server. Dalam banyak kasus, data yang dianggap berbahaya atau tidak valid akan menyebabkan aplikasi menolak permintaan tersebut. Dalam artikel ini, kita akan membahas penyebab umum kesalahan ini dan metode untuk menyelesaikannya.
Penyebab Umum
Beberapa penyebab umum dari kesalahan ini antara lain:
1. Data Berbahaya: Data yang dikirim dari klien mengandung karakter yang dianggap berbahaya, seperti “<” dan “>”, yang dapat digunakan dalam serangan XSS (Cross-Site Scripting).
2. Validasi yang Ketat: ASP.NET memiliki fitur validasi permintaan yang secara default menolak data yang tidak memenuhi kriteria tertentu.
3. Konflik JAR: Dalam pengembangan aplikasi Java, adanya konflik antara file JAR yang digunakan dapat menyebabkan kesalahan saat merespons permintaan.
4. Penggunaan Model yang Tidak Tepat: Ketika menggunakan model untuk mengikat data, jika tidak diatur dengan benar, dapat menyebabkan kesalahan validasi.
5. Pengaturan ProGuard yang Salah: Dalam konteks Android, kesalahan ini juga dapat muncul akibat pengaturan ProGuard yang tidak tepat ketika mengonversi kode.
Metode Solusi
Metode 1: Mematikan Validasi Permintaan
Salah satu metode untuk mengatasi kesalahan ini adalah dengan mematikan validasi permintaan untuk halaman tertentu. Anda dapat melakukannya dengan menambahkan atribut berikut ke halaman ASP.NET Anda.
<%@ Page ValidateRequest="false" %>
Selain itu, Anda juga bisa mengubah pengaturan di web.config untuk mengizinkan karakter tertentu. Misalnya:
<httpRuntime requestValidationMode="2.0" />
Catatan: Mematikan validasi dapat meningkatkan risiko keamanan. Pastikan untuk memeriksa dan membersihkan data sebelum memprosesnya.
Metode 2: Menggunakan ValidateInput(false)
Jika Anda menggunakan ASP.NET MVC, Anda bisa menonaktifkan validasi input untuk metode tertentu dengan menggunakan atribut ValidateInput(false):
“`csharp
[HttpPost, ValidateInput(false)]
public ActionResult Edit(FormCollection collection)

コメント