VidalM0103 / R2S-Composites

https://r2-s-composites.vercel.app
0 stars 0 forks source link

Sécurité anti-spam-XSS formulaires contact & devis #20

Open gogicK opened 6 days ago

gogicK commented 6 days ago

https://docs.web3forms.com/getting-started/customizations/spam-protection/

Ajouter un HoneyPot Ajouter un hcaptca de sécurité lors de l'envoi de formulaire + (redirect la page d'accueil ou page de présentation associé au devis (avec un toastnotif de la réussite de l'envoi du devis).

Escaping user-generated content to prevent cross-site scripting (XSS) attacks. Plus d'info ici : https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html

& mise au propre label auto-complete required etc...

Edit : J'ai enlevé la partie Injection qu'on aura pas besoin de s'occuper tant qu'on aura pas de BDD

gogicK commented 3 days ago

Complément sur la sécurité des application react statique:

Même si votre application React est statique, sans back-end, base de données, ou comptes utilisateurs, il existe encore des aspects de sécurité à prendre en compte pour garantir que votre application soit protégée contre d'éventuelles attaques. Voici les points principaux à surveiller :

  1. Sécurité des dépendances

    Vérification des bibliothèques tierces : Comme votre application dépend de paquets et de bibliothèques (via npm/yarn), assurez-vous de surveiller régulièrement les vulnérabilités de ces dépendances. Utilisez des outils comme npm audit, Snyk, ou Dependabot. Mise à jour régulière : Gardez vos dépendances à jour pour bénéficier des derniers correctifs de sécurité.

  2. Cross-Site Scripting (XSS)

    Données statiques : Même si l'application n'a pas de back-end ou de données dynamiques, elle peut toujours être vulnérable au XSS si des données sont intégrées ou affichées de manière non sécurisée. Évitez d'insérer directement du HTML ou du JavaScript non échappé dans les composants React. Utilisation de dangerouslySetInnerHTML : Si vous utilisez cette fonction, soyez très prudent et vérifiez bien les données que vous insérez.

  3. En-têtes de sécurité

Même pour une application statique, la configuration correcte des en-têtes de sécurité dans le serveur (comme nginx ou Apache) peut prévenir plusieurs attaques :

Content Security Policy (CSP) : Empêchez l'exécution de scripts non autorisés et réduisez le risque d'attaque XSS en configurant un strict CSP.
Strict-Transport-Security (HSTS) : Forcez l'utilisation de HTTPS pour toutes les requêtes.
X-Content-Type-Options : Prévenez le « MIME type sniffing ».
X-Frame-Options : Prévenez les attaques par Clickjacking en interdisant à votre site d'être chargé dans un iframe.
X-XSS-Protection : Activez la protection contre le XSS dans les navigateurs compatibles.
  1. Sécurisation des assets Protection des fichiers statiques : Vérifiez que les fichiers et ressources (CSS, JavaScript, images) ne soient pas exposés de manière non sécurisée, et qu'aucune information sensible ne soit incluse par erreur dans ces fichiers. Minification et obfuscation : Cela complique l'analyse et la modification de votre code source par des attaquants potentiels.

  2. Sécurisation des routes et liens Validation des liens externes : Assurez-vous que les liens pointant vers des sites externes ne redirigent pas vers des domaines non sûrs ou malveillants. Ouverture des liens externes dans de nouveaux onglets : Utilisez rel="noopener noreferrer" pour prévenir certaines attaques (comme le tabnabbing) lorsque des liens externes sont ouverts dans de nouveaux onglets.

  3. Sécurisation des métadonnées Fichiers manifestes et Service Workers : Si vous utilisez un service worker pour votre application, assurez-vous qu'il soit correctement configuré pour ne pas exposer de ressources sensibles, et que le cache soit géré de manière sécurisée. Données dans les métadonnées : Veillez à ne pas inclure d'informations sensibles (comme des détails internes de votre application) dans les métadonnées HTML ou les manifestes.

  4. Utilisation de HTTPS Même si l'application est statique, elle doit être servie via HTTPS pour garantir l'intégrité et la confidentialité des communications, même dans le cas de ressources statiques. Cela permet également de bénéficier de fonctionnalités comme les Service Workers et l'utilisation du HTTP/2.

  5. Évitez les fuites d'information Fichiers de configuration : Évitez d'exposer des fichiers de configuration ou des informations sensibles dans votre dépôt public ou sur le serveur. Console logging : Évitez d'afficher des informations sensibles ou de débogage dans la console du navigateur en production.

gogicK commented 3 days ago

Besoin d'un complément d'information pour DoS Attacks

Suite : C'est souvent l'hébergement qui nous permet d'éviter ce genre de menace. Vercel a par exemple une pare-feu évitant ce genre d'attaque.