Maison Opération et maintenance Nginx Conception de l'architecture de sécurité Nginx : prévenir les attaques par injection CSRF, XSS et SQL

Conception de l'architecture de sécurité Nginx : prévenir les attaques par injection CSRF, XSS et SQL

Jun 10, 2023 am 11:27 AM
nginx安全架构 防csrf攻击 防xss攻击

Avec le développement continu d'Internet, les applications Web sont de plus en plus utilisées. Ils jouent un rôle clé dans différents domaines et ces applications offrent aux utilisateurs un accès facile mais font en même temps de ces applications une cible pour les pirates informatiques et les fuites de données. Par conséquent, la sécurité des applications Web est devenue plus importante que jamais. Cet article explique comment utiliser Nginx pour créer des applications Web sécurisées et empêcher les attaques par injection CSRF, XSS et SQL.

  1. Attaque CSRF

Une attaque CSRF (cross-site request forgery) est une méthode d'attaque qui exploite l'authentification de l'utilisateur pour pénétrer dans les applications Web en exploitant la session authentifiée de la victime sur le site Web cible pour effectuer des actions involontaires. Par conséquent, un attaquant peut effectuer des actions trompeuses telles que modifier des mots de passe, transférer des fonds, etc. sans connaître les informations d'identification réelles du compte de la victime.

Pour prévenir les attaques CSRF, il est recommandé de suivre les étapes courantes suivantes :

(1) Utiliser des codes de vérification de sécurité imprévisibles (Token) pour limiter la source des demandes.

(2) Vérifiez le champ HTTP Referer pour forcer la source de la requête.

Exemple de configuration Nginx :

Créez d'abord un fichier nommé "/etc/nginx/conf.d/csrf.conf" et ajoutez-y le contenu suivant :

location /csrf {

if ($request_method != 'POST') {
    return 405;
}

# Pre-defined token
set $token "abc123";

if ($http_csrf_token != $token) {
    return 403;
}

# Place the proxied resource here
Copier après la connexion

}

In In this Par exemple, lorsque le client envoie une requête POST à ​​"/csrf", le serveur vérifie le jeton fourni dans l'en-tête HTTP. Si le jeton n'est pas égal à celui du serveur, le serveur renvoie une erreur 403. Si les jetons sont égaux, le serveur traite la demande et renvoie la ressource.

  1. Attaque XSS

Une attaque par script intersite (XSS) est une méthode d'attaque qui exploite les vulnérabilités des applications Web pour injecter des scripts malveillants afin d'attaquer la victime. Ces scripts injectent généralement des fonctions dans le navigateur de la victime via la saisie de texte HTML, des attaques par injection JavaScript et CSS, et peuvent voler des informations sensibles, falsifier des pages, etc.

Pour éviter les attaques XSS, il est recommandé de suivre les étapes courantes suivantes :

(1) Vérifiez que les données saisies sont correctes côté client et évitez d'utiliser des fonctions JavaScript non sécurisées (telles que eval).

(2) Vérifiez toutes les entrées fiables et codez toutes les sorties.

(3) Utilisez les en-têtes CSP (Content Security Policy) pour restreindre les sources de ressources des éléments de page acceptés et définis.

Exemple de configuration Nginx :

Ajoutez ce qui suit à votre fichier de configuration nginx :

add_header Content-Security-Policy "default-src 'self';

    script-src 'self' 'unsafe-inline' 'unsafe-eval' 
    https://apis.google.com";
Copier après la connexion

Cela indiquera au navigateur de faire confiance uniquement au contenu du site actuel et Ressources de l'API Google. De plus, il permet l'utilisation de scripts en ligne dans des éléments de script.

  1. Attaques par injection SQL

Les attaques par injection SQL impliquent l'injection de code SQL exécutable dans une base de données en manipulant des requêtes SQL dans une application Web pour mener des attaques. . Grâce à cette méthode, les attaquants peuvent voler des informations sensibles, compromettre la base de données et même contrôler l'ensemble du système.

Pour éviter les attaques par injection SQL, il est recommandé de suivre les étapes courantes suivantes :

(1) Ne faites jamais confiance aux informations saisies par l'utilisateur. data., utilisez toujours des instructions préparées ou des requêtes paramétrées.

(2) Les utilisateurs accédant à la base de données ne doivent pas pouvoir effectuer d'opérations

(3) Lorsque vous choisissez un système de gestion de base de données, assurez-vous qu'il est robuste et résistant aux attaques par injection SQL. .

Exemple de configuration Nginx :

Avant d'essayer d'interagir avec la base de données via l'interface Web, vous devez vous assurer que toutes les informations d'identification requises (nom d'utilisateur, mot de passe, etc.) sont sécurisées et ne sont pas exposées sur le serveur Web

. vous souhaiterez peut-être également installer le module SSL de Nginx et utiliser HTTPS pour protéger la transmission des données sensibles. De plus, vous pouvez utiliser le module de mise en cache et le pare-feu de Nginx pour limiter les attaques réseau et les comportements malveillants.

Résumé :

La sécurité des applications Web est importante. crucial pour la protection des données et de la confidentialité des utilisateurs. Avec Nginx, vous pouvez facilement vous protéger contre les attaques par injection CSRF, XSS et SQL et en protéger vos applications Web. Bien qu'aucune des méthodes incluses ne soit nouvelle, elles sont l'une des méthodes les plus efficaces. en pratique, vous devez mettre à jour et améliorer votre stratégie de sécurité des applications Web en temps opportun

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ticage de performances Nginx: Optimisation de la vitesse et de la faible latence Ticage de performances Nginx: Optimisation de la vitesse et de la faible latence Apr 05, 2025 am 12:08 AM

Le réglage des performances de Nginx peut être obtenu en ajustant le nombre de processus de travail, la taille du pool de connexion, l'activation des protocoles de compression GZIP et HTTP / 2 et en utilisant l'équilibrage du cache et de la charge. 1. Ajustez le nombre de processus de travail et la taille du pool de connexion: Worker_ProcessesAuto; Événements {Worker_Connections1024;}. 2. Activer la compression GZIP et le protocole http / 2: http {gzipon; serveur {écouter443sslhttp2;}}. 3. Utilisez l'optimisation du cache: http {proxy_cache_path / path / to / cachelevels = 1: 2k

Configuration avancée de Nginx: Mastering Server Blocks et proxy inversé Configuration avancée de Nginx: Mastering Server Blocks et proxy inversé Apr 06, 2025 am 12:05 AM

La configuration avancée de Nginx peut être implémentée via des blocs de serveur et un proxy inversé: 1. Les blocs de serveur permettent d'exécuter plusieurs sites Web en une seule instance, chaque bloc est configuré indépendamment. 2. Le proxy inversé transfère la demande au serveur backend pour réaliser l'équilibrage de charge et l'accélération du cache.

Équilibrage de la charge de Nginx: configuration pour la haute disponibilité et l'évolutivité Équilibrage de la charge de Nginx: configuration pour la haute disponibilité et l'évolutivité Apr 03, 2025 am 12:12 AM

Nginx peut atteindre une haute disponibilité et une évolutivité en configurant l'équilibrage de la charge. 1) Définir les groupes de serveurs en amont, 2) Sélectionnez des algorithmes d'équilibrage de charge appropriés tels que le sondage, le sondage pondéré, la connexion minimale ou le hachage IP, 3) Optimiser la configuration et le moniteur et ajuster les poids du serveur pour assurer des performances et une stabilité optimales.

Configuration Nginx SSL / TLS: sécuriser votre site Web avec HTTPS Configuration Nginx SSL / TLS: sécuriser votre site Web avec HTTPS Apr 10, 2025 am 09:38 AM

Pour assurer la sécurité du site Web via NGINX, les étapes suivantes sont requises: 1. Créez une configuration de base, spécifiez le certificat SSL et la clé privée; 2. Optimiser la configuration, activer HTTP / 2 et OCSPStapling; 3. Débogage des erreurs communes, telles que les problèmes de trajectoire de certificat et de suite de cryptage; 4. Suggestions d'optimisation des performances de l'application, telles que l'utilisation de Let'scrypt et du multiplexage de session.

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Certification multipartite: la version standard de l'iPhone 17 prendra en charge le taux de rafraîchissement élevé! Pour la première fois dans l'histoire! Certification multipartite: la version standard de l'iPhone 17 prendra en charge le taux de rafraîchissement élevé! Pour la première fois dans l'histoire! Apr 13, 2025 pm 11:15 PM

L'iPhone 17 d'Apple peut inaugurer une mise à niveau majeure pour faire face à l'impact de solides concurrents tels que Huawei et Xiaomi en Chine. Selon le blogueur numérique @digital Chat Station, la version standard de l'iPhone 17 devrait être équipée d'un écran de taux de rafraîchissement élevé pour la première fois, améliorant considérablement l'expérience utilisateur. Cette décision marque le fait qu'Apple a finalement délégué une technologie de taux de rafraîchissement élevé à la version standard après cinq ans. À l'heure actuelle, l'iPhone 16 est le seul téléphone phare avec un écran de 60 Hz dans la gamme de prix de 6 000 yuans, et cela semble un peu en retard. Bien que la version standard de l'iPhone 17 aura un écran de taux de rafraîchissement élevé, il existe toujours des différences par rapport à la version Pro, telles que la conception de la lunette n'atteint toujours pas l'effet de la lunette ultra-narrow de la version Pro. Ce qui mérite le plus de noter, c'est que la série iPhone 17 Pro adoptera un tout nouveau et plus

Comment configurer le nom de domaine du serveur cloud dans nginx Comment configurer le nom de domaine du serveur cloud dans nginx Apr 14, 2025 pm 12:18 PM

Comment configurer un nom de domaine NGINX sur un serveur cloud: Créez un enregistrement A pointant vers l'adresse IP publique du serveur cloud. Ajoutez des blocs d'hôtes virtuels dans le fichier de configuration Nginx, en spécifiant le port d'écoute, le nom de domaine et le répertoire racine du site Web. Redémarrez Nginx pour appliquer les modifications. Accéder à la configuration du test de nom de domaine. Autres notes: Installez le certificat SSL pour activer HTTPS, assurez-vous que le pare-feu autorise le trafic Port 80 et attendez que la résolution DNS prenne effet.

See all articles