


Quelles sont les vulnérabilités courantes en matière de sécurité Web et les méthodes de test ?
1. Six principes de base des tests de sécurité :
Authentification : Retour des demandes aux utilisateurs authentifiés
Contrôle d'accès : Contrôle des autorisations et protection des données pour les utilisateurs non authentifiés
Intégrité : Les utilisateurs doivent recevoir avec précision les informations envoyées par le serveur Confidentialité des informations
Confidentialité : les informations doivent être fournies avec précision à l'utilisateur prévu.
Fiabilité : à quelle fréquence échoue-t-elle ? Combien de temps faut-il au réseau pour se remettre d’une panne ? Quelles mesures sont prises pour faire face à une défaillance catastrophique ? (Personnellement, je comprends que cet endroit devrait être plus enclin à la catégorie des tests de tolérance aux pannes et de tolérance aux catastrophes)
Non-répudiation : les utilisateurs doivent pouvoir prouver que les données reçues proviennent d'un serveur spécifique
2. Contenu commun des tests de sécurité
Contrôle des autorisations
Injection SQL
Tests de sécurité des URL
XSS (attaque de script intersite)
CSRF (falsification de requêtes intersites)
Vulnérabilité de saut d'URL
Autres considérations de sécurité
3 . Quelles sont les causes des problèmes de sécurité dans les applications Web ? Il existe généralement les raisons suivantes :
1. Les systèmes d'application complexes comportent une grande quantité de code et de nombreux développeurs, la négligence est donc inévitable.
2. Le système a été mis à niveau à plusieurs reprises et le personnel a été changé fréquemment, ce qui a entraîné une incohérence du code.
3. Plusieurs systèmes Web tels que les systèmes hérités historiques et les systèmes d'exploitation d'essai fonctionnent ensemble sur le même serveur.
4. Les développeurs n'ont pas reçu de formation sur le codage sécurisé ou l'entreprise ne dispose tout simplement pas de normes de codage sécurisées unifiées.
5. Les testeurs sont inexpérimentés ou libérés sans tests d'évaluation de sécurité professionnels.
6. Il n'y a aucune vérification de la saisie de l'utilisateur. Voici quelques exemples :
1) Ne faites jamais confiance aux saisies de l'utilisateur, vérifiez les saisies de l'utilisateur
2) La saisie numérique doit être des nombres légaux
3) Traitement spécial des symboles d'encodage dans saisie de caractères
4) Vérifiez tous les points d'entrée, y compris Get, Post, Cookie et autres en-têtes HTTP
4. Vulnérabilités courantes et solutions dans les tests de sécurité :
1 Attaque de script intersite XSS
SS est similaire à SQL. L'injection XSS insère des scripts malveillants via des pages Web. Les principales technologies utilisées sont également des scripts HTML et JavaScript front-end. Lorsque l'utilisateur navigue sur le Web, une méthode d'attaque est mise en œuvre pour contrôler le comportement du navigateur de l'utilisateur.
Un XSS réussi peut obtenir le cookie de l'utilisateur et utiliser le cookie pour voler les autorisations de fonctionnement de l'utilisateur sur le site Web ; il peut également obtenir la liste de contacts de l'utilisateur et utiliser l'identité de l'attaquant pour envoyer un grand nombre de messages à une cible spécifique. groupe. Spam, etc.
XSS est divisé en trois catégories : type de stockage (XSS persistant), type de réflexion (XSS non persistant) et type DOM.
Méthode de test :
Dans l'interface de saisie des données, saisissez : <script>alert(/123/)</script>. Si une boîte de dialogue apparaît après un enregistrement réussi, elle indique qu'il existe une vulnérabilité XSS ici. .
Ou modifiez les paramètres de la demande d'URL en <script>alert(/123/)</script>. Si une boîte de dialogue apparaît sur la page, elle indique qu'il existe une vulnérabilité XSS.
2. Injection SQL
L'injection SQL consiste à insérer des commandes SQL dans les soumissions de formulaires Web ou à saisir des chaînes de caractères de requête
pour les noms de domaine ou les requêtes de page, et finalement à inciter le serveur à exécuter des commandes SQL malveillantes.
Les dommages possibles causés par l'injection SQL incluent : les pages Web et les données sont falsifiées, les données de base sont volées et le serveur sur lequel se trouve la base de données est attaqué et transformé en hôte fantoche.
Par exemple, certains sites Web n'utilisent pas de SQL précompilé, et certains champs saisis par l'utilisateur sur l'interface sont ajoutés au SQL. Il est très probable que ces champs contiennent des commandes SQL malveillantes. Par exemple : password = "1' OR '1'='1" ; même si vous ne connaissez pas le mot de passe utilisateur, vous pouvez vous connecter normalement.
Méthode de test :
Sur la page qui doit être interrogée, entrez les conditions de requête correctes et des instructions SQL simples telles que 1=1, et vérifiez les résultats de la réponse si les résultats renvoyés en entrant les conditions de requête correctes sont cohérents, cela indique que l'application ne filtre pas les entrées de l'utilisateur. , on peut juger au préalable qu'il existe une vulnérabilité d'injection SQL ici
Suggestions de modification :
Vérifiez l'entrée de l'utilisateur, vous pouvez utiliser des expressions régulières ou limiter la longueur de la conversion ; mots-clés suivants, etc. ,|like'|and|exec|execute|insert| create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr |mid|master|truncate|declare|or|-- |+|,|like|//
N'utilisez pas SQL d'assemblage dynamique, vous pouvez utiliser SQL paramétré ou utiliser directement des procédures stockées pour la requête et l'accès aux données ;
N'utilisez pas de connexions à la base de données avec des droits d'administrateur, utilisez-la pour chaque application Connexion à une base de données séparée avec des autorisations limitées
Les informations d'exception de l'application doivent donner le moins d'invites possible, et il est préférable d'utiliser des informations d'erreur personnalisées pour envelopper l'erreur d'origine ; information.
3. Vulnérabilité de saut d'URL
La vulnérabilité de saut d'URL, c'est-à-dire une vulnérabilité de redirection non vérifiée, signifie que le programme Web accède directement à l'URL dans le paramètre ou introduit l'URL de n'importe quel développeur dans la page, sur laquelle les programmes démarreront. zones tierces dangereuses, provoquant des problèmes de sécurité.
Méthode de test :
1. Utilisez l'outil de capture de paquets pour capturer la demande.
2. Saisissez l'URL 302, modifiez l'adresse cible et vérifiez si elle peut sauter.
ps : Cependant, de nombreux sauts ont désormais une vérification du référent ajoutée, empêchant les attaquants de sauter.
4. Vulnérabilité de téléchargement de fichier
Une attaque de téléchargement de fichier signifie que l'attaquant télécharge un fichier exécutable sur le serveur et l'exécute.
Cette méthode d'attaque est la plus directe et la plus efficace. Les fichiers téléchargés peuvent être des virus, des chevaux de Troie, des scripts malveillants, des webshells, etc.
Webshell est un environnement d'exécution de commandes qui existe sous la forme de fichiers Web tels que asp, php, jsp ou cgi. On peut également dire qu'il s'agit d'une porte dérobée Web. Une fois qu'un attaquant a empêché ou inséré un webshell dans le système affecté, il peut facilement entrer dans le système via le webshell et contrôler le serveur du site Web.
Méthode de test :
Vérifiez strictement le type, la taille, etc. du fichier téléchargé et interdisez le téléchargement de fichiers contenant un code malveillant.
Vérifiez les autorisations d'exécution des répertoires concernés. Vous pouvez accéder à tous les répertoires du serveur Web via le navigateur et vérifier si la structure des répertoires est renvoyée. Si la structure des répertoires est affichée, il peut y avoir un problème de sécurité.
5. Attaque de requêtes falsifiées intersites CSRF
CSRF utilise l'identité de l'utilisateur connecté pour envoyer des requêtes malveillantes au nom de l'utilisateur afin d'effectuer des opérations illégales.
Par exemple : si un utilisateur navigue et fait confiance au site Web A qui présente une vulnérabilité CSRF, le navigateur génère un cookie correspondant et l'utilisateur visite le site Web dangereux B sans quitter le site Web.
Le site Web dangereux B demande à accéder au site Web A et fait une demande. Le navigateur visite le site Web A avec les informations de cookie de l'utilisateur. Étant donné que le site Web A ne sait pas si la demande provient de l'utilisateur lui-même ou d'un site Web dangereux B, il traitera la demande du site Web dangereux B, complétant ainsi la simulation des opérations de l'utilisateur. . C'est l'idée de base des attaques CSRF.
Méthode de test :
1. Ouvrez deux pages dans le même navigateur. Après l'expiration de l'autorisation d'une page, l'autre page peut-elle être utilisée avec succès, si elle peut toujours être utilisée avec succès, il y a un risque.
2. Utilisez des outils pour envoyer des requêtes, n'ajoutez pas le champ référent dans l'en-tête de la requête http, vérifiez la réponse du message renvoyé et redirigez vers l'interface d'erreur ou l'interface de connexion.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

1. Enregistrez la sortie dans un fichier à l'aide du module : la journalisation peut générer des journaux de niveau personnalisé et peut générer des journaux vers un chemin spécifié. Niveau de journalisation : debug (journal de débogage) = 5) {clearTimeout (time) // Si tous sont obtenus 10 fois dans un. les lignes sont vides Tâche planifiée d'effacement du journal}return}if(data.log_type==2){//Si un nouveau journal est obtenu pour(i=0;i

Introduction à Caddy Caddy est un serveur Web puissant et hautement évolutif qui compte actuellement plus de 38 000 étoiles sur Github. Caddy est écrit en langage Go et peut être utilisé pour l'hébergement de ressources statiques et le proxy inverse. Caddy présente les principales caractéristiques suivantes : par rapport à la configuration complexe de Nginx, sa configuration originale de Caddyfile est très simple ; il peut modifier dynamiquement la configuration via l'AdminAPI qu'il fournit, il prend en charge la configuration HTTPS automatisée par défaut et peut demander automatiquement des certificats HTTPS ; et configurez-les ; il peut être étendu aux données Des dizaines de milliers de sites ; peut être exécuté n'importe où sans dépendances supplémentaires écrites en langage Go, la sécurité de la mémoire est plus garantie ; Tout d’abord, nous l’installons directement dans CentO

Le barrage de blocage du visage signifie qu'un grand nombre de barrages flottent sans bloquer la personne dans la vidéo, donnant l'impression qu'ils flottent derrière la personne. L'apprentissage automatique est populaire depuis plusieurs années, mais beaucoup de gens ne savent pas que ces fonctionnalités peuvent également être exécutées dans les navigateurs. Cet article présente le processus d'optimisation pratique des barrages vidéo. À la fin de l'article, il répertorie certains scénarios applicables. cette solution, dans l'espoir de l'ouvrir. mediapipeDemo (https://google.github.io/mediapipe/) montre le principe de mise en œuvre du calcul d'arrière-plan du serveur vidéo de téléchargement à la demande du barrage de blocage de visage grand public pour extraire la zone du portrait dans l'écran vidéo et la convertit en stockage SVG client pendant la lecture de la vidéo. Téléchargez svg depuis le serveur et combinez-le avec barrage, portrait.

Utilisation de Jetty7 pour le traitement du serveur Web dans le développement JavaAPI Avec le développement d'Internet, le serveur Web est devenu l'élément central du développement d'applications et est également au centre de l'attention de nombreuses entreprises. Afin de répondre aux besoins croissants des entreprises, de nombreux développeurs choisissent d'utiliser Jetty pour le développement de serveurs Web, et sa flexibilité et son évolutivité sont largement reconnues. Cet article explique comment utiliser Jetty7 dans le développement JavaAPI pour We

La validation du formulaire est un maillon très important dans le développement d'applications Web. Elle permet de vérifier la validité des données avant de soumettre les données du formulaire afin d'éviter les failles de sécurité et les erreurs de données dans l'application. La validation de formulaire pour les applications Web peut être facilement implémentée à l'aide de Golang. Cet article explique comment utiliser Golang pour implémenter la validation de formulaire pour les applications Web. 1. Éléments de base de la validation de formulaire Avant de présenter comment implémenter la validation de formulaire, nous devons savoir quels sont les éléments de base de la validation de formulaire. Éléments de formulaire : les éléments de formulaire sont

Tout d’abord, vous aurez un doute, qu’est-ce que le frp ? En termes simples, frp est un outil de pénétration intranet. Après avoir configuré le client, vous pouvez accéder à l'intranet via le serveur. Maintenant, mon serveur a utilisé nginx comme site Web et il n'y a qu'un seul port 80. Alors, que dois-je faire si le serveur FRP souhaite également utiliser le port 80 ? Après l'interrogation, cela peut être réalisé en utilisant le proxy inverse de nginx. A ajouter : frps est le serveur, frpc est le client. Étape 1 : Modifiez le fichier de configuration nginx.conf sur le serveur et ajoutez les paramètres suivants à http{} dans nginx.conf, server{listen80

Cockpit est une interface graphique Web pour les serveurs Linux. Il est principalement destiné à faciliter la gestion des serveurs Linux pour les utilisateurs nouveaux/experts. Dans cet article, nous aborderons les modes d'accès à Cockpit et comment basculer l'accès administratif à Cockpit depuis CockpitWebUI. Sujets de contenu : Modes d'entrée du cockpit Trouver le mode d'accès actuel au cockpit Activer l'accès administratif au cockpit à partir de CockpitWebUI Désactiver l'accès administratif au cockpit à partir de CockpitWebUI Conclusion Modes d'entrée au cockpit Le cockpit dispose de deux modes d'accès : Accès restreint : il s'agit de la valeur par défaut pour le mode d'accès au cockpit. Dans ce mode d'accès vous ne pouvez pas accéder à l'internaute depuis le cockpit

Les normes Web sont un ensemble de spécifications et de directives développées par le W3C et d'autres organisations associées. Elles incluent la normalisation du HTML, CSS, JavaScript, DOM, l'accessibilité du Web et l'optimisation des performances. En suivant ces normes, la compatibilité des pages peut être améliorée. , maintenabilité et performances. L'objectif des normes Web est de permettre au contenu Web d'être affiché et d'interagir de manière cohérente sur différentes plates-formes, navigateurs et appareils, offrant ainsi une meilleure expérience utilisateur et une meilleure efficacité de développement.
