# Sécurité & Best Practices React (React / Next.js) > XSS prevention, CSRF protection, dangerouslySetInnerHTML, Content Security Policy, HTTPS, sanitization - 22 questions d'entretien - Senior - [Questions d'entretien: React / Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien.md) ## 1. Qu'est-ce qu'une attaque XSS (Cross-Site Scripting) ? **Réponse** Une attaque XSS consiste à injecter du code JavaScript malveillant dans une application web pour l'exécuter dans le navigateur d'autres utilisateurs. L'attaquant exploite les failles de validation ou d'échappement des données pour voler des cookies, des tokens de session, ou effectuer des actions non autorisées. React offre une protection native en échappant automatiquement les valeurs JSX, mais des vulnérabilités subsistent avec dangerouslySetInnerHTML ou lors de la manipulation directe du DOM. ## 2. Comment React protège-t-il contre les attaques XSS par défaut ? **Réponse** React échappe automatiquement toutes les valeurs insérées via JSX en les convertissant en texte brut avant le rendu. Cette protection empêche l'exécution de scripts malveillants même si du code HTML est injecté dans les données. Contrairement à innerHTML qui interprète et exécute le HTML, React traite les balises comme du texte simple, rendant impossible l'injection de JavaScript malveillant via les props ou le state standard. ## 3. Pourquoi dangerouslySetInnerHTML est-il considéré comme dangereux en React ? **Réponse** Cette propriété contourne la protection XSS native de React en insérant du HTML brut directement dans le DOM sans échappement. Si le contenu provient d'une source non fiable ou d'une API externe, il peut contenir du JavaScript malveillant qui sera exécuté. Le nom explicite dangerouslySetInnerHTML force les développeurs à reconnaître consciemment le risque de sécurité et à mettre en place une sanitization appropriée avec des bibliothèques comme DOMPurify. ## 19 questions supplémentaires disponibles - Quelle est la différence principale entre une attaque XSS Stored et Reflected ? - Quelle approche privilégier pour afficher du HTML provenant d'une API externe en React ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien React / Next.js - [Les bases de JavaScript](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/javascript-essentials.md): 25 questions, Junior - [Fondamentaux React](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-fundamentals.md): 20 questions, Junior - [React Hooks](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-hooks.md): 22 questions, Junior - [Cycle de vie des composants](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/component-lifecycle.md): 18 questions, Junior - [React Router](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-router.md): 20 questions, Junior - [Gestion d'état avec Context](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/state-management-context.md): 18 questions, Junior - [Formulaires & Composants contrôlés](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/forms-controlled-components.md): 20 questions, Confirmé - [Fetching de données & API](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/fetching-data-api.md): 20 questions, Confirmé - [React Query (TanStack Query)](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-query-tanstack.md): 20 questions, Confirmé - [Styling & CSS-in-JS](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/styling-css-in-js.md): 18 questions, Confirmé - [Fondamentaux Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-fundamentals.md): 25 questions, Confirmé - [TypeScript avec React](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/typescript-react.md): 20 questions, Confirmé - [Data Fetching Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-data-fetching.md): 24 questions, Confirmé - [Server Actions Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-server-actions.md): 20 questions, Confirmé - [Routing & Navigation Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-routing-navigation.md): 22 questions, Confirmé - [API Routes Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-api-routes.md): 20 questions, Confirmé - [Metadata & SEO Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-metadata-seo.md): 18 questions, Confirmé - [Middleware & Auth Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-middleware-auth.md): 22 questions, Confirmé - [Testing React](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-testing.md): 20 questions, Confirmé - [Zustand State Management](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/zustand-state-management.md): 18 questions, Confirmé - [Optimisation Performance React](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-performance-optimization.md): 22 questions, Senior - [Error Boundaries & Error Handling](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-error-boundaries.md): 18 questions, Senior - [Advanced React Patterns](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/advanced-react-patterns.md): 20 questions, Senior - [Fonctionnalités avancées Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-advanced-features.md): 24 questions, Senior - [Déploiement & Production Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-deployment-production.md): 20 questions, Senior - [Architecture & Design Patterns](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-architecture-patterns.md): 22 questions, Senior - [React Server Components](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-server-components.md): 26 questions, Senior - [Internationalisation Next.js](https://sharpskill.dev/fr/technologies/react-next/questions-entretien/nextjs-internationalization.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/react-next/questions-entretien/react-security-best-practices