Les attaques XSS sont une menace de cybersécurité courante qui permet aux attaquants d'exécuter des scripts malveillants dans le navigateur de la victime. Cela peut entraîner de graves conséquences telles que le vol d’informations sensibles, le détournement de session ou la destruction de sites Web.
1. Validation et filtrage des entrées :
Validez les entrées des utilisateurs pour les empêcher d'injecter des scripts malveillants. Les méthodes de filtrage courantes incluent le codage d'entités HTML, la validation d'expressions régulières et les entrées sur liste blanche.
String safeInput = HttpServletRequest.getParameter("input"); safeInput = HtmlUtils.htmlEscape(safeInput);
2. CSP (Content Security Policy) :
CSP est un ensemble d'en-têtes HTTP qui spécifient les sources à partir desquelles le navigateur peut charger des scripts, des styles et d'autres ressources. Les attaques XSS peuvent être évitées en limitant les sources à partir desquelles les scripts sont chargés.
// Spring Security 示例配置 HttpSecurity http = ... http.headers().contentSecurityPolicy("default-src 'self'; script-src 'self' https://cdn.example.com");
3. Bibliothèques de nettoyage XSS :
Les bibliothèques tierces telles que OWASP AntiSamy peuvent nettoyer automatiquement les scripts malveillants des entrées.
// 使用 OWASP AntiSamy 进行 XSS 清除 Policy policy = new Policy.PolicyBuilder().build(); PolicyResult result = policy.scan(unsafeInput); safeInput = result.getCleanHTML();
4. Politique de même origine :
La politique de même origine empêche les scripts d'origines différentes d'accéder au DOM et aux cookies des autres. S'assurer que tous les scripts proviennent de la même source peut aider à prévenir les attaques XSS.
5. En-tête de réponse :
Définissez l'en-tête de réponse X-XSS-Protection
pour demander au navigateur de prendre des mesures de protection XSS, comme empêcher l'exécution de scripts malveillants.
// Spring Boot 示例配置 @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.httpConfigurer((http) -> http .headers((headers) -> headers .xssProtection())); }
Supposons qu'il existe un site Web de forum en ligne sur lequel les utilisateurs peuvent publier des commentaires avec du code HTML. Pour prévenir les attaques XSS, le site suit les étapes suivantes :
Ensemble, ces mesures garantissent que les commentaires publiés par les utilisateurs sur le site du forum sont sûrs et ne présentent pas de risque de sécurité pour les autres utilisateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!