Maison > développement back-end > tutoriel php > PHP Master | Conformité PCI et ce que cela signifie pour PHP

PHP Master | Conformité PCI et ce que cela signifie pour PHP

Christopher Nolan
Libérer: 2025-02-24 09:01:11
original
476 Les gens l'ont consulté

PHP Master | PCI Compliance and What it Means to PHP

Comprendre la conformité PCI et son impact sur le développement de PHP

PCI signifie «l'industrie des cartes de paiement», mais beaucoup, c'est un ensemble de normes vagues imposées par les cartels internationaux secrets qui visent à enterrer des âmes sans méfiance avec de lourdes statuts et des litiges juridiques. La vérité est beaucoup plus ennuyeuse. En fait, PCI est un ensemble de directives de sécurité développées par une coalition de sociétés de cartes de crédit et d'experts en sécurité de l'industrie pour réglementer la façon dont les demandes se comportent lors du traitement des informations de crédit ou de débit. Les sociétés de cartes de crédit imposent ces normes aux banques, ce que les banques imposent ensuite à ceux d'entre nous qui exploitent des sites Web de commerce électronique. Dans cet article, nous supprimerons certains malentendus persistants sur PCI, en découvrons PCI d'une hauteur de 20 000 pieds, puis se concentrer sur les exigences liées au codage général et à la PHP.

Points clés

  • Les normes PCI (Industrie des cartes de paiement) sont des directives de sécurité développées par les sociétés de cartes de crédit et les experts en sécurité pour réglementer la façon dont les candidatures gèrent les informations de crédit ou de débit. Ils conviennent à tous ceux qui acceptent les informations sur les cartes de crédit pour le paiement, y compris les petits sites de commerce électronique.
  • La norme PCI contient 12 exigences de base, notamment la construction et la maintenance d'un réseau sécurisé, la protection des données des titulaires de carte, la maintenance des procédures de gestion de la vulnérabilité, la mise en œuvre de mécanismes de contrôle d'accès puissants, la surveillance et le test régulièrement du réseau et le maintien des stratégies de sécurité de l'information.
  • Les développeurs PHP doivent se conformer à ces normes lors de la création d'applications qui traitent les données de carte de crédit. Cela inclut de ne pas utiliser le profil ou le mot de passe par défaut du fournisseur, la protection et le chiffre d'affaires stockées, le développement de systèmes et d'applications sécurisés, de limiter l'accès et de suivre et d'enregistrer tout l'accès aux ressources et aux données.
  • Bien que les normes PCI fournissent des directives et des idées de sécurité, ce ne sont pas des technologies spécifiques et ne peuvent être garanties d'être protégées contre les pirates. Cependant, se conformer à ces normes peut réduire la probabilité de violations de sécurité et améliorer le statut juridique et des consommateurs de l'entreprise.
  • La conformité aux normes PCI n'est pas une tâche unique et nécessite une attention continue et un examen annuel. Les développeurs doivent rester informés des dernières exigences PCI et des meilleures pratiques de sécurité via le site Web du comité de sécurité de la sécurité PCI et des newsletters de sécurité connexes, des blogs et des programmes de formation.

PCI Misonding

Pas étonnant, il y a beaucoup de malentendus autour de la norme PCI. L'un des malentendus est qu'ils sont comme le code de conduite de la mafia, non écrit nulle part, afin qu'ils puissent être interprétés comme vous le souhaitez. Bien sûr, c'est incorrect. Pour apprendre la description complète des normes PCI, visitez simplement PCiSecuritystandards.org. Un autre malentendu est que les normes de sécurité PCI ne s'appliquent qu'aux «grandes entreprises» telles que les banques et les grands détaillants. Ils conviennent à tous ceux qui acceptent les informations sur les cartes de crédit pour payer les marchandises. Si vous avez écrit un site Web PHP pour que votre mère vende sa célèbre tarte au citron, vous avez un système qui correspond aux directives PCI. La troisième idée fausse est que si vous suivez les normes PCI, vous serez protégé du piratage malveillant et que vos données resteront sécurisées. Bien sûr, c'est bien, mais la vérité est que les normes PCI sont des guides et des idées, pas des techniques spécifiques (elles doivent être vagues pour s'adapter à toutes les architectures et plateformes). De toute évidence, plus vous vous concentrez sur la sécurité, moins vous serez attaqué, mais n'importe qui peut être attaqué. Si vous avez au moins essayé de répondre aux attentes de PCI, votre avis sera mieux à la fois en termes de droit et de consommateur. Enfin, PCI n'est pas quelque chose que vous pouvez accomplir avec un seul et ensuite prendre une profonde inspiration. Cette norme vous oblige à faire un examen PCI une fois par an, donc c'est comme un travail d'assurance qualité ou écouter votre conjoint, un travail continu. Le simple fait est que PCI est quelque chose que chaque programmeur travaillant sur une application qui traite les données de carte de crédit doit connaître, quelle que soit la taille. Oui, c'est pourquoi les concessionnaires ne collectent que de l'argent.

Bases de PCI

La norme PCI se compose de 12 exigences de base. La norme est mise à jour environ tous les deux ans, au cours de laquelle une variété de fichiers de guidage plus spécifiques sont publiés qui traitent d'un sous-ensemble du monde PCI. Par exemple, en février 2013, le personnel de PCI a publié un livre blanc sur PCI et le cloud computing. Ces rapports spéciaux sont également disponibles sur le site Web de PCI. Comme nous le verrons, de nombreuses exigences PCI sont plus liées au réseau, mais si vous n'avez pas une compréhension de base du PCI complet, quel est l'intérêt de parler de ces choses? Ces exigences sont:

  • Zone 1 - Établir et maintenir un réseau sécurisé
    • Exigence 1 - Installez un pare-feu pour protéger votre environnement.
    • Exigence 2 - N'utilisez pas le profil ou le mot de passe par défaut du fournisseur.
  • Zone 2 - Protégez les données du titulaire de carte
    • Exigence 3 - Protégez les données du titulaire de carte stocké.
    • Exigence 4 - Données de titulaire de carte chiffré transmises sur un réseau public ouvert.
  • zone 3 - Maintenir les procédures de gestion de la vulnérabilité
    • Exigence 5 - Utiliser et mettre à jour régulièrement les logiciels antivirus.
    • Exigence 6 - Développer et maintenir des systèmes et des applications sécurisés.
  • Zone 4 - Implémentez un puissant mécanisme de contrôle d'accès
    • Exigence 7 - Limitez l'accès aux données du titulaire de carte en fonction des principes qui doivent être compris.
    • Exigence 8 - Attribuez un ID unique à chaque personne avec accès à l'ordinateur.
    • Exigence 9 - restreindre l'accès physique aux données du titulaire de carte.
  • zone 5 - réseau de surveillance et de test régulier
    • Exigences 10 - Suivre et surveiller / enregistrer tout l'accès aux ressources du réseau et aux données du titulaire de carte.
    • Exigence 11 - Test périodique des systèmes et processus de sécurité.
  • zone 6 - Maintenir la politique de sécurité de l'information
    • Exigence 12 - Maintenir une politique pour résoudre la sécurité de l'information.

Certains de ces projets sont liés aux décisions politiques, c'est-à-dire des décisions qui indiquent clairement comment vous travaillez pour protéger les informations sur les cartes et garantir la sécurité globale du réseau et des applications. D'autres exigences ont à voir avec le réseau lui-même et le logiciel que vous pouvez utiliser pour le protéger. Certains d'entre eux impliquent la phase de conception du processus, comment vous construisez et configurez votre application. Il existe peu d'exigences liées au code, et il n'y a aucune exigence pour décrire des techniques de programmation spécifiques qui vous recommandent de rester en sécurité. Pour garder la longueur relativement courte, je limiterai mon ironie et ma sagesse (rapport 70:30) et me concentrerai sur les deux derniers groupes.

Exigence 2 - N'utilisez pas le fichier de configuration par défaut du fournisseur / mot de passe

À bien des égards, cela est presque évident. Le personnel de sécurité nous dit cela depuis que nous avons commencé à nous soucier de ces choses. Mais il est surprenant de savoir à quel point il est facile d'utiliser un compte et un mot de passe par défaut dans la plupart des logiciels que nous utilisons (comme MySQL) (surtout lorsque vous installez quelque chose et tout est dans l'état "test"). Le danger augmente ici car la plupart d'entre nous créent nos applications autour de certains logiciels de base, plutôt que de faire le tout à partir de zéro. Ce pourrait être un package que nous utilisons pour gérer le chiffrement et le stockage des clés (voir ci-dessous), ou il peut s'agir du cadre de l'ensemble de l'application. Quoi qu'il en soit, facile à retenir, facile à implémenter: n'utilisez pas le compte par défaut.

Exigence 3 - Protégez les données du titulaire de carte stocké

Dans la plupart des hacks de sites Web de détail de haut niveau, je me souviens, il y avait des vols de cartes ou d'autres données enregistrées par le site Web, donc j'ai répertorié cela comme la partie la plus importante de la norme PCI. De toute évidence, toutes les données de carte que vous stockez doivent être cryptées. Et vous devez faire un bon travail de cryptage. Pour ceux qui connaissent très bien le chiffrement, vous savez que faire un bon travail de chiffrement des données signifie que vous avez bien géré les clés de chiffrement. La gestion des clés tourne autour du problème de la génération, du stockage et de la mise à jour des clés utilisées dans les processus de chiffrement. Les stocker peut être un gros problème car vous voulez vous assurer que personne ne peut entrer dans le système et voler les clés. Les stratégies de gestion varient dans la façon de diviser une clé en plusieurs parties; profond. Bien sûr, si vous utilisez des produits commerciaux pour gérer le cryptage, vous pouvez leur laisser une gestion clé, bien que vous souhaitiez vous assurer que leur processus est fiable et qu'il correspond à votre approche. La plupart des produits commerciaux sont développés en pensant à PCI et seront donc construits selon les normes PCI, mais cela ne vous empêchera toujours pas d'effectuer une inspection secondaire. De plus, si vous minimisez ou même éliminez la quantité de données que vous stockez, la tâche de protéger les données deviendra beaucoup plus facile. Autrement dit, les données du titulaire de la carte peuvent être leur nom, anniversaire, numéro de carte, période de validité, code de vérification de la carte (CV) (trois ou quatre chiffres à l'arrière ou à l'avant de la carte), etc. Moins vous économisez d'articles, moins vous avez besoin de crypter et moins vous avez de la responsabilité. Heureusement, il s'agit d'un domaine assez spécifique des normes PCI qui définissent clairement les données que vous pouvez et ne pouvez pas enregistrer. Vous pouvez enregistrer le numéro de carte (PAN - Numéro de compte principal), le nom du titulaire de la carte, la date d'expiration et le code de service. Si vous enregistrez une casserole, si vous souhaitez l'afficher, vous devez le bloquer, et seuls les six premiers et quatre derniers chiffres peuvent être affichés au maximum. Vous ne pouvez pas stocker l'intégralité du contenu d'une broche, d'un code CV ou d'une bande magnétique. La question que vous devez vous poser pendant la phase de conception est la quantité de données ennuyeuses que vous souhaitez vraiment conserver. La seule vraie raison de le garder est que vous souhaitez offrir une expérience facile à vos clients la prochaine fois. Vous pouvez garder votre anniversaire afin que vous puissiez leur envoyer une petite invitation amicale pour votre anniversaire. Toutes ces données doivent être cryptées et protégées, alors assurez-vous d'en tirer une utilisation commerciale fiable. L'exigence 4 (chiffrer les données transmises) est considérée comme une partie de cette partie, mais je la considérerai comme faisant partie de l'infrastructure et je n'entrerai pas dans les détails.

Exigence 6 - Développer et maintenir des systèmes et applications sécurisés

Il s'agit d'une exigence liée au code. Ne pas cibler une fonction ou une classe spécifique, mais au moins assurez-vous de suivre les normes de sécurité générales et essayez de rendre vos affaires aussi sûres que possible. Vous utilisez donc simplement des techniques de codage (quelle que soit la langue) qui ne rendront pas votre application vulnérable aux attaques évidentes. Par exemple, vous essayez d'empêcher l'injection SQL en prenant des précautions lorsque vous acceptez les données de formulaire, vous essayez de bloquer les XS, etc. Pour plus d'informations sur l'évitement de certains des problèmes de sécurité les plus courants, consultez d'autres articles publiés sur SitePoint (cet article et cet article et d'autres articles que vous pouvez trouver si vous recherchez "sûr".

nécessite 7 et 8 - Accès restreint et IDS uniques

ces deux choses sont liées à la façon dont vous accédez à votre application, donc c'est quelque part entre le codage et la conception. Il ne faut aucun problème pour exiger que chaque visiteur ait un identifiant unique à moins que - vous permettez aux gens de vous connecter et de magasiner via le profil invité. Je peux penser à plusieurs sites Web qui vous permettent de le faire, ce qui n'est pas mauvais en soi, mais utiliser les profils de groupe est dangereux et vous devez faire très attention à vous assurer qu'ils n'ont pas beaucoup de permission. D'une manière générale, vous devriez essayer de définir un ID unique, même si l'ID n'est pas l'ID que vous avez enregistré. Par exemple, vous pouvez faire en sorte que les gens se connectent en tant qu'invité, mais créent immédiatement un fichier de configuration unique pour l'événement en arrière-plan. Nous voulons également limiter l'accès physique aux données du titulaire de carte. Cela peut être un soupçon de l'avenir, alors que nous pourrons rétrécir les gens à des tailles submicroscopiques comme le voyage fantastique d'Isaac Asimov et les injecter dans le dispositif de stockage pour obtenir les données 1 et 1 des cartes 0… ou cela peut également être lié aux salles de serveurs verrouillées, badges pour tous les visiteurs, sans permettant à personne de se rapprocher des bandes de sauvegarde, etc.

Exigences 10 - Suivi et enregistrement de tous les accès aux ressources / données

Enfin, ne sous-estimez pas l'importance de suivre et d'enregistrer tout ce qui accède aux ressources ou aux données du titulaire de carte ... Je veux dire tout. Les événements qui doivent être enregistrés comprennent la connexion, la déconnexion, l'accès aux données; Vous devez implémenter un journal sécurisé qui vérifie les journaux tous les jours pour trouver des problèmes et enregistre les journaux pendant un an. Pour les utilisateurs de PHP, il serait avantageux de se familiariser avec la norme de journalisation PSR-3 du groupe PHP-Fig, qui fournit un moyen unifié et flexible de configurer votre journalisation. Plutôt que de plonger en profondeur ici, je vous suggère de lire l'article d'introduction de Patrick Mulvey.

Résumé

Une chose que je veux vraiment souligner, c'est que PCI n'est pas la cerise sur le gâteau. Il s'agit de la partie de base de la création d'une application qui utilise des données de carte de crédit. Si vous écrivez une application qui reçoit ce type de données, cela fonctionnera pour vous, que vos clients le sachent ou non. La plupart du contenu est supérieur au niveau d'encodage, mais il est réel et vous devez toujours y faire attention. images de Fotolia

FAQ (FAQ) sur la conformité PCI et le développement de PHP

Qu'est-ce que la conformité PCI et pourquoi est-il important pour les développeurs PHP?

La conformité PCI fait référence à la conformité avec la norme de sécurité des données de l'industrie des cartes de paiement (PCI DSS), un ensemble de normes de sécurité conçues pour garantir que toutes les entreprises qui acceptent, traitent, stockent ou transmettent les informations de carte de crédit conservent un environnement sécurisé. Pour les développeurs PHP, la compréhension et la mise en œuvre de la conformité PCI sont cruciales car elles aident à protéger les données sensibles des clients, à réduire le risque de violations de données et à établir la confiance avec les utilisateurs. Le non-respect des réglementations peut entraîner des pénalités, des amendes et même la perte de la capacité de traiter les paiements.

Comment les développeurs PHP garantissent-ils la conformité PCI?

Les développeurs PHP peuvent assurer la conformité PCI à travers plusieurs étapes clés. Ces étapes incluent l'utilisation de pratiques de codage sécurisées pour prévenir les vulnérabilités communes, le cryptage des données sensibles, la mise en œuvre de puissants contrôles d'accès, les tests et les applications de mise à jour régulièrement et la mise à jour et la maintenance des politiques de sécurité de l'information.

Quelles sont les vulnérabilités de sécurité communes en PHP et comment les empêcher?

Certaines vulnérabilités de sécurité communes dans PHP incluent l'injection SQL, les scripts croisés (XSS) et la contrefaçon de demande de site transversal (CSRF). Ces vulnérabilités peuvent être évitées en utilisant des instructions préparées ou des requêtes paramétrées pour empêcher l'injection SQL, valider et nettoyer l'entrée de l'utilisateur et les jetons anti-CSRF pour empêcher les attaques CSRF.

Comment les développeurs PHP traitent-ils les données de carte de crédit en toute sécurité?

Les développeurs PHP peuvent traiter les données de carte de crédit en toute sécurité en suivant les exigences PCI DSS. Cela comprend le chiffrement des données des titulaires de carte transmises sur un réseau public ouvert, la protection des données des titulaires de carte stockées, la mise en œuvre de puissants contrôles d'accès, la surveillance et le test régulièrement du réseau et la maintenance des politiques de sécurité de l'information.

Quel rôle joue le cryptage dans la conformité PCI?

Le cryptage joue un rôle crucial dans la conformité PCI. Il aide à protéger les données sensibles en convertissant des données sensibles telles que les informations sur les cartes de crédit en un format qui ne peut pas être lu, qui ne peut être décrypté qu'à l'aide d'une clé de décryptage. Cela garantit que même si les données sont interceptées pendant la transmission, les individus non autorisés ne peuvent pas les lire ou les utiliser.

Comment les développeurs PHP implémentent-ils les contrôles d'accès puissants?

Les développeurs PHP peuvent limiter l'accès physique aux données des titulaires de carte en s'assurant que chaque personne ayant un accès à l'ordinateur se voit attribuer un identifiant unique et restreindre l'accès aux données du titulaire de carte en fonction des principes que l'entreprise doit connaître la mise en œuvre de solides mesures de contrôle d'accès. De plus, ils devraient revoir régulièrement les contrôles d'accès et les mettre à jour au besoin.

Quelles sont les conséquences de ne pas se conformer aux DSS PCI?

Le fait de ne pas se conformer aux PCI DSS peut entraîner une série de conséquences, notamment des amendes, des pénalités et même la perte de la capacité de traiter les paiements par carte de crédit. De plus, il peut endommager la réputation de l'entreprise et entraîner une baisse de la confiance des clients.

À quelle fréquence les développeurs PHP devraient-ils tester s'il y a des vulnérabilités de sécurité dans leurs systèmes et applications?

Les développeurs PHP devraient tester régulièrement leurs systèmes et applications pour les vulnérabilités de sécurité. La fréquence des tests dépendra des exigences spécifiques du PCI DSS, mais en tant que meilleures pratiques, les systèmes et les applications doivent être testés au moins une fois par an, ainsi qu'après tout changement significatif.

Qu'est-ce qu'une politique de sécurité de l'information et pourquoi est-elle importante pour la conformité PCI?

La politique de sécurité de l'information est un ensemble de règles et de procédures suivies d'une entreprise pour protéger ses actifs d'information. Il est important pour la conformité PCI car il permet de garantir que tous les employés comprennent leurs rôles et responsabilités dans la protection des données du titulaire de carte et fournit un cadre pour la mise en œuvre et la maintenance des contrôles de sécurité.

Comment les développeurs PHP restent-ils à jour avec les dernières exigences PCI DSS et les meilleures pratiques de sécurité?

Les développeurs PHP peuvent rester à jour avec les dernières exigences du DSS PCI et en vérifiant régulièrement le site officiel du Comité des normes de sécurité PCI, en vous abonnant à des newsletters et blogs pertinents, en assistant à des conférences de sécurité et en webinaires, et en participant à des programmes de formation et de certification en matière de sécurité et de certification Meilleures pratiques de sécurité.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal