Maison développement back-end tutoriel php Comment utiliser PHP et Vue.js pour développer des applications qui protègent contre les attaques malveillantes de manipulation de fichiers

Comment utiliser PHP et Vue.js pour développer des applications qui protègent contre les attaques malveillantes de manipulation de fichiers

Jul 07, 2023 pm 02:51 PM
php(php) vuejs(vuejs) 防御(防御)

Comment utiliser PHP et Vue.js pour développer des applications qui se défendent contre les attaques malveillantes de manipulation de fichiers

Les attaques malveillantes de manipulation de fichiers sont une menace courante pour la sécurité du réseau. Les attaquants exploitent les serveurs de manière malveillante en téléchargeant des fichiers ou en exploitant les vulnérabilités d'inclusion de fichiers. conduire à une fuite de données sensibles, à un crash du système ou même à un contrôle complet du serveur. Afin de protéger la sécurité des données des applications et des utilisateurs, nous devons prendre certaines mesures défensives lors du développement des applications pour résister aux attaques malveillantes sur les fichiers.

Dans cet article, je vais vous présenter comment utiliser PHP et Vue.js, deux outils de développement populaires, pour développer une application qui se défend contre les attaques malveillantes de manipulation de fichiers. Nous améliorerons la sécurité des applications en limitant les téléchargements de fichiers et en mettant en œuvre des opérations de fichiers sécurisées.

Tout d’abord, voyons comment limiter les téléchargements de fichiers. En PHP, nous pouvons y parvenir des manières suivantes :

  1. Vérification du type de fichier : Vérifiez le type de fichier téléchargé et autorisez uniquement le téléchargement de types spécifiques de fichiers. Vous pouvez utiliser la fonction mime_content_type() de PHP pour obtenir le type MIME du fichier téléchargé et le comparer avec les types sur liste blanche.

Exemple de code :

$allowedTypes = array('image/jpeg', 'image/png', 'image/gif');
$mimeType = mime_content_type($_FILES['file']['tmp_name']);

if (!in_array($mimeType, $allowedTypes)) {
    // 文件类型不被允许
    die('Invalid file type');
}

// 处理文件上传
Copier après la connexion
  1. Limite de taille de fichier : limitez la taille des fichiers téléchargés pour empêcher les utilisateurs de télécharger des fichiers trop volumineux et d'épuiser les ressources du serveur. Vous pouvez utiliser l'attribut size dans la super variable globale $_FILES de PHP pour obtenir la taille du fichier téléchargé et la comparer à la valeur maximale autorisée.

Exemple de code :

$maxFileSize = 10 * 1024 * 1024; // 10MB
$fileSize = $_FILES['file']['size'];

if ($fileSize > $maxFileSize) {
    // 文件大小超过限制
    die('File size exceeds limit');
}

// 处理文件上传
Copier après la connexion

En plus de restreindre les téléchargements de fichiers, vous devez également faire attention à la sécurité des opérations sur les fichiers. Voici quelques mesures de sécurité courantes :

  1. Vérification du chemin d'accès aux fichiers : lors de l'exécution d'opérations sur les fichiers, les chemins d'accès aux fichiers doivent être vérifiés et filtrés pour empêcher les attaquants de construire des chemins malveillants pour accéder à des fichiers auxquels il ne faut pas accéder.

Exemple de code :

$filePath = 'uploads/' . $_GET['filename'];
$basePath = 'uploads/';

if (strpos(realpath($filePath), realpath($basePath)) !== 0) {
    // 文件路径非法
    die('Invalid file path');
}

// 执行文件操作
Copier après la connexion
  1. Paramètres d'autorisation de fichier : assurez-vous que les fichiers sur le serveur ne peuvent être lus et écrits que par des utilisateurs autorisés. Vous pouvez restreindre l'accès aux fichiers en définissant le masque d'autorisation du fichier.

Exemple de code :

$filename = 'uploads/file.txt';

// 设置文件权限为600,仅允许拥有者读写文件
chmod($filename, 0600);
Copier après la connexion
  1. Vérification et filtrage des noms de fichiers : les noms de fichiers téléchargés par les utilisateurs peuvent contenir des caractères spéciaux ou des symboles de traversée de répertoire, qui doivent être vérifiés et filtrés pour garantir la sécurité des noms de fichiers.

Exemple de code :

$filename = $_FILES['file']['name'];
$filteredFilename = preg_replace("/[^A-Za-z0-9_-.]/", '', $filename);

// 处理文件上传,使用过滤后的文件名
Copier après la connexion

Les mesures de sécurité ci-dessus ne sont pas absolues. Dans le cadre du développement actuel, nous devons également concevoir des mécanismes de sécurité plus complexes et plus rigoureux, basés sur des circonstances spécifiques.

En plus du code PHP back-end, nous avons également besoin d'une interface front-end pour implémenter la fonction de téléchargement de fichiers. Dans cet exemple, nous utiliserons Vue.js pour implémenter la logique frontale.

Exemple de code :

<template>
  <div>
    <input type="file" @change="handleFileUpload">
    <button @click="uploadFile">Upload</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedFile: null
    }
  },
  methods: {
    handleFileUpload(event) {
      this.selectedFile = event.target.files[0];
    },
    uploadFile() {
      let formData = new FormData();
      formData.append('file', this.selectedFile);

      // 使用axios或其他HTTP请求库将文件发送到后端
      axios.post('/upload', formData)
        .then(response => {
          console.log(response.data);
        })
        .catch(error => {
          console.error(error);
        });
    }
  }
}
</script>
Copier après la connexion

Ce qui précède est un simple composant Vue.js, comprenant une boîte de sélection de fichier et un bouton de téléchargement. Lorsque l'utilisateur sélectionne un fichier, stockez le fichier dans la variable selectedFile. Lorsque vous cliquez sur le bouton de téléchargement, le fichier est enveloppé avec un objet FormData et envoyé au backend via une requête HTTP.

Pour résumer, cet article explique comment utiliser PHP et Vue.js pour développer des applications qui se défendent contre les attaques malveillantes de manipulation de fichiers. En limitant les téléchargements de fichiers et en mettant en œuvre des opérations de fichiers sécurisées, vous pouvez améliorer efficacement la sécurité des applications. Cependant, la sécurité est un processus continu et nous devons continuellement apprendre et mettre à jour les mécanismes de sécurité pour répondre à l’évolution des menaces.

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

See all articles