Mengubah Suai Parameter Permintaan dengan Penapis Servlet
Walaupun masalah dengan aplikasi web sedia ada, kod sumber tidak boleh diubah. Untuk menangani kerentanan XSS, penapis servlet dianggap untuk membersihkan parameter. Walau bagaimanapun, kekurangan kaedah setParameter dalam ServletRequest menimbulkan cabaran.
Penyelesaian 1: HttpServletRequestWrapper
Satu pendekatan ialah menggunakan kelas HttpServletRequestWrapper. Dengan mensubkelaskan kelas ini dan mengatasi kaedah getParameter, anda boleh memintas dan mengembalikan nilai yang telah dibersihkan. Permintaan yang dibungkus ini kemudiannya boleh dihantar ke chain.doFilter dan bukannya yang asal.
Penyelesaian 2: Minta Atribut
Penyelesaian yang lebih bersih melibatkan pengubahsuaian servlet/JSP asal kepada terima atribut permintaan dan bukannya parameter. Penapis akan memeriksa parameter, membersihkannya dan menetapkan atribut menggunakan request.setAttribute. Kaedah ini mengelakkan keperluan untuk subkelas atau spoofing, tetapi memerlukan pengubahsuaian kepada komponen aplikasi lain.
Pertimbangan
Menggunakan HttpServletRequestWrapper mematuhi API servlet. Walau bagaimanapun, sesetengah bekas servlet mungkin menimbulkan bantahan jika anda cuba meluluskan permintaan yang diubah untuk melakukanFilter.
Pendekatan atribut permintaan menawarkan penyelesaian yang lebih elegan tetapi memerlukan perubahan kod tambahan. Akhirnya, pilihan bergantung pada aplikasi tertentu dan tahap akses kepada kod aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengubah Suai Parameter Permintaan dengan Penapis Servlet Tanpa Mengubah Kod Sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!