Serangan XSS ialah ancaman keselamatan siber biasa yang membenarkan penyerang melaksanakan skrip berniat jahat dalam penyemak imbas mangsa. Ini boleh membawa kepada akibat yang serius seperti kecurian maklumat sensitif, rampasan sesi atau pemusnahan tapak web.
1. Pengesahan dan Penapisan Input:
Sahkan input pengguna untuk menghalang mereka daripada menyuntik skrip berniat jahat. Kaedah penapisan biasa termasuk pengekodan entiti HTML, pengesahan ungkapan biasa dan input disenarai putih.
String safeInput = HttpServletRequest.getParameter("input"); safeInput = HtmlUtils.htmlEscape(safeInput);
2. CSP (Dasar Keselamatan Kandungan):
CSP ialah satu set pengepala HTTP yang menentukan sumber dari mana penyemak imbas boleh memuatkan skrip, gaya dan sumber lain. Serangan XSS boleh dihalang dengan mengehadkan sumber dari mana skrip dimuatkan.
// Spring Security 示例配置 HttpSecurity http = ... http.headers().contentSecurityPolicy("default-src 'self'; script-src 'self' https://cdn.example.com");
3. XSS Cleaning Libraries:
Pustaka pihak ketiga seperti OWASP AntiSamy boleh membersihkan skrip berniat jahat secara automatik daripada input.
// 使用 OWASP AntiSamy 进行 XSS 清除 Policy policy = new Policy.PolicyBuilder().build(); PolicyResult result = policy.scan(unsafeInput); safeInput = result.getCleanHTML();
4. Dasar Asal Sama:
Dasar asal sama menghalang skrip dari asal yang berbeza daripada mengakses DOM dan kuki masing-masing. Memastikan semua skrip datang daripada sumber yang sama boleh membantu mencegah serangan XSS.
5. Pengepala respons:
Tetapkan X-XSS-Protection
pengepala respons untuk mengarahkan penyemak imbas mengambil langkah perlindungan XSS, seperti menghalang skrip berniat jahat daripada dijalankan.
// Spring Boot 示例配置 @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.httpConfigurer((http) -> http .headers((headers) -> headers .xssProtection())); }
Andaikan ada laman web forum dalam talian di mana pengguna boleh menghantar komen dengan kod HTML. Untuk mengelakkan serangan XSS, tapak mengambil langkah berikut:
Bersama-sama, langkah-langkah ini memastikan komen yang disiarkan oleh pengguna di laman web forum adalah selamat dan tidak menimbulkan risiko keselamatan kepada pengguna lain.
Atas ialah kandungan terperinci Bagaimanakah reka bentuk seni bina keselamatan rangka kerja Java menghalang serangan skrip merentas tapak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!