Maison >développement back-end >tutoriel php >Meilleures pratiques de configuration de sécurité et de vérification des paramètres dans le développement d'API PHP

Meilleures pratiques de configuration de sécurité et de vérification des paramètres dans le développement d'API PHP

PHPz
PHPzoriginal
2023-06-17 13:07:131676parcourir

Alors que la demande de ressources Internet continue d'augmenter, de plus en plus d'entreprises commencent à ouvrir leurs activités au monde extérieur et à accepter l'utilisation et les appels de tiers. À ce stade, l’interface API devient le pont entre le système interne et les utilisateurs externes. Par conséquent, assurer la sécurité est particulièrement important pendant le processus de développement des API. Dans le développement d’API PHP, les meilleures pratiques de configuration de sécurité et de vérification des paramètres sont la meilleure garantie pour assurer la sécurité de l’interface.

1. Comprendre les problèmes de sécurité de l'API

L'idée de mise en œuvre de l'API est fondamentalement une conception « ouverte ». La question est donc de savoir comment garantir la sécurité du système tout en rendant la conception de l’API ouverte ? On peut principalement considérer les trois points suivants :

  1. Contrôle des autorisations : Les utilisateurs utilisant l'API doivent être authentifiés et autorisés pour garantir que seuls les utilisateurs légitimes puissent y accéder.
  2. Vérification des paramètres : les paramètres soumis par les utilisateurs à l'API doivent être vérifiés pour déterminer si ces paramètres sont légaux. Le processus de vérification peut vérifier les paramètres pour garantir leur fiabilité et leur exactitude.
  3. Cryptage des données : Pour les données particulièrement sensibles, un cryptage est requis avant la transmission. Ceci est généralement implémenté via HTTPS.

2. Configuration de sécurité correcte

  1. Activer le mode sans échec PHP

PHP a un mode sans échec intégré (le mode sans échec est une fonctionnalité de PHP 5.2.2 et est obsolète), qui peut empêcher les pirates de télécharger des scripts. Attaquez le serveur par d'autres moyens. Les paramètres inclus dans le mode sans échec incluent : l'interdiction d'appeler exec, system, popen, passthru, shell_exec et d'autres fonctions, l'interdiction de modification de la variable PHP_INI_USER, etc.

Cependant, afin d'améliorer l'efficacité du serveur, de nombreux serveurs de production ont désactivé le mode sans échec PHP. À l’heure actuelle, d’autres méthodes peuvent être utilisées pour protéger la sécurité du système.

  1. Rejeter les types de fichiers inconnus

La suggestion peut être expliquée à travers un petit exemple : par exemple, nous devons nous assurer que seuls les types de fichiers dont le téléchargement est autorisé peuvent passer, et que les autres types de fichiers doivent être refusés pour être téléchargés. . Cela utilise généralement les en-têtes MIME pour vérifier le type de fichier.

  1. Il est interdit d'autoriser les appels externes

Il est interdit d'autoriser les appels externes vers certaines API ou SDK sensibles. La solution est la suivante :

Ajoutez le contenu suivant à /etc/apache2/apache2.conf

a63c4edbe577639e061492f28f8b769a

 Order deny,allow    
 Deny from all    
 </Directory>
  1. Désactiver l'inclusion de fichiers distants

Assurez-vous que la fonction d'inclusion de fichiers distants (RFI) n'est pas activée. Cette fonctionnalité permet aux utilisateurs d'inclure dynamiquement des fichiers via des URL, ce qui pose une très grave vulnérabilité de sécurité.

3. Vérification des paramètres

  1. Longueur de la chaîne : afin de limiter la longueur d'entrée, elle doit être spécialement jugée après le formulaire ou les données saisies par l'utilisateur. Vous pouvez utiliser la fonction strlen(). Si la longueur des caractères dépasse la limite, nous devons émettre une invite.
  2. Type de contenu : dans certains cas, il est nécessaire de limiter le type de contenu des fichiers téléchargés. La mise en garde ici n'est pas de simplement vérifier le suffixe du nom de fichier, car il est possible que le type de fichier échoue à cette vérification en forgeant un suffixe.
  3. Format de l'e-mail : dans les API qui doivent vérifier l'e-mail saisi, pensez à utiliser la fonction "filter_var" pour vérifier si le format de l'e-mail est correct. Si le format est incorrect, un message d'erreur doit être affiché.

4. Cryptage des données

  1. Configurez HTTPS pour l'ensemble du site

Il est recommandé de configurer HTTPS pour le cryptage de l'ensemble du site. Cette solution peut assurer la transmission cryptée des données. HTTPS peut éviter les attaques de type « man-in-the-middle » de pirates informatiques, garantissant ainsi la sécurité de la transmission des données.

  1. Configurer l'en-tête HTTPS

En plus d'activer HTTPS dans des environnements tels qu'Apache et Nginx, nous pouvons également appliquer des websockets dans notre propre code PHP pour crypter les données transmises.

En bref, la configuration de la sécurité de l'API ne comprend pas seulement divers détails techniques, mais comprend également de nombreux traitements de données, conception structurelle, modélisation des données, etc. Ce n'est qu'en garantissant l'intégrité de l'API et la sécurité du système sur cette base qu'une conception d'API flexible, pratique et sûre peut être réalisée.

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:
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