Heim > Backend-Entwicklung > PHP-Tutorial > PHP Master | PCI -Konformität und was es für PHP bedeutet

PHP Master | PCI -Konformität und was es für PHP bedeutet

Christopher Nolan
Freigeben: 2025-02-24 09:01:11
Original
390 Leute haben es durchsucht

PHP Master | PCI Compliance and What it Means to PHP

Verstehen Sie die PCI -Einhaltung und ihre Auswirkungen auf die PHP -Entwicklung

PCI steht für die „Zahlungskartenindustrie“, aber für viele handelt es sich um eine Reihe von vagen Standards, die von geheimen internationalen Kartellen auferlegt werden, die darauf abzielen, ahnungslose Seelen mit schweren Statuten und rechtlichen Streitigkeiten zu begraben. Die Wahrheit ist viel langweiliger. Tatsächlich ist PCI eine Reihe von Sicherheitsrichtlinien, die von einer Koalition von Kreditkartenunternehmen und Branchensicherheitsexperten entwickelt wurden, um zu regulieren, wie sich Anwendungen bei der Bearbeitung von Kredit- oder Debitkarteninformationen verhalten. Kreditkartenunternehmen stellen Banken diese Standards auf, die Banken dann denjenigen von uns auferlegen, die E-Commerce-Websites betreiben. In diesem Artikel werden wir einige anhaltende Missverständnisse über PCI entfernen, über PCI aus einer Höhe von 20.000 Fuß erfahren und sich dann auf die Anforderungen im Zusammenhang mit allgemeiner Codierung und PHP konzentrieren.

Schlüsselpunkte

  • PCI (Zahlungskartenindustrie) Standards sind Sicherheitsrichtlinien, die von Kreditkartenunternehmen und Sicherheitsexperten entwickelt wurden, um zu regulieren, wie Anwendungen mit Kredit- oder Debitkarteninformationen umgehen. Sie eignen sich für alle, die Kreditkarteninformationen für die Zahlung akzeptieren, einschließlich kleiner E-Commerce-Websites.
  • Der PCI -Standard enthält 12 grundlegende Anforderungen, darunter das Erstellen und Wartung eines sicheren Netzwerks, das Schutz von Karteninhaberdaten, die Aufrechterhaltung von Verfahren zur Verwundbarkeitsmanagement, die Implementierung leistungsstarker Zugriffskontrollmechanismen, die regelmäßige Überwachung und Prüfung des Netzwerks sowie die Wartung von Informationssicherheitsrichtlinien.
  • PHP -Entwickler müssen diese Standards einhalten, wenn sie Anwendungen erstellen, die Kreditkartendaten verarbeiten. Dies beinhaltet nicht das Standardprofil oder das Kennwort des Anbieters, das Schutz und die Verschlüsselung gespeicherter Karteninhaberdaten, die Entwicklung sicherer Systeme und Anwendungen, die Begrenzung des Zugriffs sowie die Verfolgung und Aufzeichnung aller Zugriff auf Ressourcen und Daten.
  • Während PCI -Standards Sicherheitsrichtlinien und -ideen enthält, sind sie keine spezifischen Technologien und können nicht garantiert vor Hackern geschützt werden. Die Einhaltung dieser Standards kann jedoch die Wahrscheinlichkeit von Sicherheitsverletzungen verringern und den Rechts- und Verbraucherstatus des Unternehmens verbessern.
  • Einhaltung der PCI-Standards ist keine einmalige Aufgabe und erfordert kontinuierliche Aufmerksamkeit und jährliche Überprüfung. Entwickler sollten über die Website des PCI Security Standards Committee und verwandte Sicherheits -Newsletter, Blogs und Schulungsprogramme über die neuesten PCI -Anforderungen und Best Practices der Sicherheitsversicherung informiert bleiben.

PCI Missverständnis

Kein Wunder, es gibt viele Missverständnisse rund um den PCI -Standard. Eines der Missverständnisse ist, dass sie wie der Mafia -Verhaltenskodex sind und nirgendwo geschrieben sind, sodass sie so interpretiert werden können, wie Sie es wollen. Das ist natürlich falsch. Um die vollständige Beschreibung der PCI -Standards zu erfahren, besuchen Sie einfach pcisecurityStandards.org. Ein weiteres Missverständnis ist, dass PCI -Sicherheitsstandards nur für "große Unternehmen" wie Banken und große Einzelhändler gelten. Sie eignen sich für alle, die Kreditkarteninformationen akzeptieren, um die Waren zu bezahlen. Wenn Sie eine PHP -Website für Ihre Mutter geschrieben haben, um ihren berühmten Zitronenkuchen zu verkaufen, haben Sie ein System, das den PCI -Richtlinien entspricht. Das dritte Missverständnis ist, dass Sie, wenn Sie PCI -Standards folgen, vor böswilligem Hacking geschützt werden und Ihre Daten sicher bleiben. Das ist natürlich gut, aber die Wahrheit ist, dass PCI -Standards Anleitungen und Ideen sind, nicht spezifische Techniken (sie müssen vage sein, um alle Architekturen und Plattformen anzupassen). Je mehr Sie sich auf die Sicherheit konzentrieren, desto weniger Chance werden Sie angegriffen, aber jeder kann angegriffen werden. Wenn Sie zumindest versucht haben, die PCI -Erwartungen zu erfüllen, ist Ihre Überprüfung sowohl in Bezug auf Recht als auch Verbraucher besser. Schließlich ist PCI nicht etwas, das Sie mit nur einem erreichen und dann tief einatmen können. Dieser Standard erfordert, dass Sie einmal im Jahr eine PCI -Überprüfung durchführen. Daher ist es wie Qualitätssicherungsarbeiten oder Hören Ihres Ehepartners, eine laufende Arbeit. Die einfache Tatsache ist, dass PCI etwas ist, das jeder Programmierer, der an einer Anwendung arbeitet, die Kreditkartendaten verarbeitet, unabhängig von der Größe wissen muss. Ja, deshalb sammeln Händler nur Bargeld.

Grundlagen von PCI

PCI -Standard besteht aus 12 grundlegenden Anforderungen. Der Standard wird ungefähr alle zwei Jahre aktualisiert, in denen eine Vielzahl spezifischeren Leitfaden veröffentlicht wird, die sich mit einer Teilmenge der PCI -Welt befassen. Im Februar 2013 veröffentlichte PCI -Mitarbeiter beispielsweise ein Weißbuch über PCI und Cloud Computing. Diese Sonderberichte sind auch auf der PCI -Website verfügbar. Wie wir sehen werden, sind viele PCI-Anforderungen mehr netzwerkbezogen, aber wenn Sie kein grundlegendes Verständnis für die volle PCI haben, was ist der Sinn, über diese Dinge zu sprechen? Diese Anforderungen sind:

  • Bereich 1 - Festlegen und pflegen Sie ein sicheres Netzwerk
    • Anforderung 1 - Installieren Sie eine Firewall, um Ihre Umgebung zu schützen.
    • Anforderung 2 - Verwenden Sie nicht das Standard -Standardprofil oder das Standardkennwort.
  • Bereich 2 - Schützen Sie Karteninhaberdaten
    • Anforderung 3 - Schützen Sie gespeicherte Karteninhaberdaten.
    • Anforderung 4 - Verschlüsseln Sie Karteninhaberdaten, die in einem offenen öffentlichen Netzwerk übertragen werden.
  • Bereich 3 - Verwalten Sie die Verwundbarkeitsmanagementverfahren
    • Anforderung 5 - Verwenden und regelmäßig aktualisieren Sie die Antiviren -Software.
    • Anforderung 6 - Entwickeln und pflegen Sie sichere Systeme und Anwendungen.
  • Bereich 4 - Implementieren Sie einen leistungsstarken Zugangskontrollmechanismus
    • Anforderung 7 - Begrenzen Sie den Zugriff auf Karteninhaberdaten basierend auf den Grundsätzen, die verstanden werden müssen.
    • Anforderung 8 - Weisen Sie jeder Person mit Computerzugriff eine eindeutige ID zu.
    • Anforderung 9 - Beschränken Sie den physischen Zugriff auf Karteninhaberdaten.
  • Bereich 5 - Regelmäßige Überwachungs- und Testnetzwerk
    • Anforderungen 10 - Verfolgen und Überwachung/Überwachung/Überwachung/Aufzeichnung/Aufzeichnung auf Netzwerkressourcen und Karteninhaberdaten.
    • Anforderung 11 - regelmäßige Prüfung von Sicherheitssystemen und -prozessen.
  • Bereich 6 - Wartung der Informationssicherheitsrichtlinie
    • Anforderung 12 - Behalten Sie eine Richtlinie zur Bekämpfung der Informationssicherheit bei.

Einige dieser Projekte beziehen sich auf politische Entscheidungen, d. H. Entscheidungen, die eindeutig angeben, wie Sie zum Schutz der Karteninformationen arbeiten und die allgemeine Sicherheit des Netzwerks und der Anwendungen sicherstellen. Andere Anforderungen haben mit dem Netzwerk selbst und der Software zu tun, mit der Sie es schützen können. Einige von ihnen beinhalten die Designphase des Prozesses, wie Sie Ihre Anwendung erstellen und einrichten. Es gibt nur wenige Anforderungen im Zusammenhang mit dem Code, und es gibt keine Anforderungen an die Beschreibung bestimmter Programmierungstechniken, die empfehlen, sicher zu bleiben. Um die Länge relativ kurz zu halten, werde ich meine Ironie und Weisheit (70:30 Verhältnis) einschränken und mich auf die letzten beiden Gruppen konzentrieren.

Anforderung 2 - Verwenden Sie nicht die Standardkonfigurationsdatei des Anbieters/Passwort

In vielerlei Hinsicht ist dies fast selbstverständlich. Sicherheitspersonal haben uns dies erzählt, seit wir uns über diese Dinge Sorgen gemacht haben. Es ist jedoch überraschend, wie einfach es ist, in vielen von uns verwendeten Software (wie MySQL) ein Standardkonto und Kennwort zu verwenden (insbesondere wenn Sie zum ersten Mal etwas installieren und alles im Status "Test" ist). Die Gefahr hier steigt, da die meisten von uns unsere Anwendungen um eine grundlegende Software aufbauen, anstatt das Ganze von Grund auf neu zu machen. Es kann sich nur um ein Paket handeln, mit dem Sie Verschlüsselung und Schlüsselspeicher verarbeiten (siehe unten), oder das Rahmen für die gesamte Anwendung. In jedem Fall leicht zu merken, einfach zu implementieren: Verwenden Sie das Standardkonto nicht.

Anforderung 3 - Schützen Sie gespeicherte Karteninhaberdaten

In den meisten hochkarätigen Einzelhandels-Website-Hacks, an die ich mich erinnere, gab es Diebstahl von Karten oder anderen Daten, die von der Website gespeichert wurden. Daher habe ich dies als den wichtigsten Teil des PCI-Standards aufgelistet. Offensichtlich sollten alle Kartendaten, die Sie speichern, verschlüsselt werden. Und Sie müssen eine gute Verschlüsselung leisten. Für diejenigen, die die Verschlüsselung sehr gut kennen, wissen Sie, dass Sie die Verschlüsselungsverschlüsselung gut leisten können. Das Schlüsselmanagement dreht sich um das Problem der Generierung, Speicherung und Aktualisierung von Schlüsseln, die in Verschlüsselungsprozessen verwendet werden. Das Speichern kann ein großes Problem sein, da Sie sicherstellen möchten, dass niemand in das System gelangen und die Schlüssel stehlen kann. Die Managementstrategien unterscheiden sich, wie Sie einen Schlüssel in mehrere Teile teilen können. tief. Wenn Sie kommerzielle Produkte verwenden, um die Verschlüsselung zu bewältigen, können Sie ihnen das Schlüsselmanagement überlassen, obwohl Sie sicherstellen möchten, dass der Prozess zuverlässig ist und dass es zu Ihrem Ansatz passt. Die meisten kommerziellen Produkte werden unter Berücksichtigung von PCI entwickelt und werden daher nach PCI -Standards gebaut, aber dies wird Sie immer noch nicht daran hindern, eine sekundäre Inspektion durchzuführen. Wenn Sie die Datenmenge, die Sie speichern, minimieren oder sogar beseitigen, wird die Aufgabe, Daten zu schützen, viel einfacher. Das heißt, die Karteninhaberdaten können ihr Name, Geburtstag, Kartennummer, Gültigkeitsdauer, CV -Code (Card Converification) (drei oder vier Ziffern auf der Rückseite oder vor der Karte) usw. sein. Je weniger Elemente Sie sparen, desto weniger benötigen Sie verschlüsselt und die weniger Verantwortung, die Sie haben. Glücklicherweise ist dies ein ziemlich spezifischer Bereich von PCI -Standards, die klar definieren, welche Daten Sie speichern können und was nicht. Sie können die Kartennummer (PAN - Hauptkontonummer), Karteninhabername, Ablaufdatum und Servicecode speichern. Wenn Sie eine Pfanne speichern, müssen Sie sie blockieren, und nur die ersten sechs und die letzten vier Ziffern können höchstens angezeigt werden. Sie können den gesamten Inhalt eines Stifts, eines Lebenslaufcode oder eines Magnetstreifens nicht speichern. Die Frage, die Sie sich während der Designphase stellen müssen, ist, wie viel dieser nervigen Daten Sie wirklich behalten möchten. Der einzige wirkliche Grund, um es zu behalten, ist, dass Sie Ihren Kunden das nächste Mal einfach eine einfache Erfahrung bieten möchten. Sie können Ihren Geburtstag behalten, damit Sie ihnen eine freundliche kleine Einladung an Ihrem Geburtstag schicken können. Alle diese Daten müssen verschlüsselt und geschützt werden. Stellen Sie daher sicher, dass Sie einen zuverlässigen kommerziellen Einsatz davon erhalten. Anforderung 4 (Verschlüsseln von Daten, die übertragen werden) gilt als Teil dieses Teils, aber ich werde sie als Teil der Infrastruktur betrachten und nicht in Details eingehen.

Anforderung 6 - Entwickeln und pflegen Sie sichere Systeme und Anwendungen

Dies ist eine codebedingte Anforderung. Nicht auf eine bestimmte Funktion oder Klasse abzielen, aber zumindest sicherstellen, dass Sie allgemeine Sicherheitsstandards befolgen und versuchen, Ihre Sachen so sicher wie möglich zu gestalten. Sie verwenden also nur Codierungstechniken (unabhängig von der Sprache), die Ihre Anwendung nicht für offensichtliche Angriffe anfällig machen. Beispielsweise versuchen Sie, die SQL -Injektion zu verhindern, indem Sie Vorsichtsmaßnahmen beim Akzeptieren von Formulardaten treffen. Sie versuchen, XSS usw. zu blockieren. Weitere Informationen zur Vermeidung einiger der häufigsten Sicherheitsprobleme finden Sie in einigen anderen Artikeln, die auf SitePoint veröffentlicht wurden (diesen Artikel und diesen Artikel sowie andere Artikel, die Sie finden, wenn Sie nach "Safe" suchen.

erfordert 7 und 8 - eingeschränkter Zugriff und eindeutige IDs

Beide Dinge beziehen sich auf die Art und Weise, wie Sie auf Ihre Anwendung zugreifen, und liegt daher irgendwo zwischen Codierung und Design. Es sollte kein Problem sein, dass jeder Besucher eine eindeutige ID hat, es sei denn, Sie erlauben den Personen, sich anzumelden und über das Gastprofil einzukaufen. Ich kann mir mehrere Websites vorstellen, auf denen Sie dies tun können, was an sich nicht böse ist, aber die Verwendung von Gruppenprofilen ist gefährlich und Sie müssen besonders vorsichtig sein, um sicherzustellen, dass sie nicht viel Erlaubnis haben. Im Allgemeinen sollten Sie versuchen, eine eindeutige ID festzulegen, auch wenn die ID nicht die ID ist, die Sie gespeichert haben. Sie können sich beispielsweise als Gast anmelden lassen, erstellen jedoch sofort eine eindeutige Konfigurationsdatei für das Ereignis im Hintergrund. Wir möchten auch den physischen Zugriff auf Karteninhaberdaten einschränken. Dies kann ein Hinweis auf die Zukunft sein, wenn wir die Menschen auf submikroskopische Größen wie Isaac Asimovs fantastischer Reise verkleinern und sie in das Speichergerät injizieren können, um die 1 und 1 der Kartendaten 0 zu erhalten… oder es kann auch verwandt sein Zu gesperrten Serverräumen, Abzeichen für alle Besucher, die niemanden ermöglichen, sich den Backup -Bändern zu nähern, usw.

Anforderungen 10 - Verfolgung und Aufzeichnung aller Zugriff auf Ressourcen/Daten

Schließlich unterschätzen Sie nicht, wie wichtig es ist, alles zu verfolgen und aufzunehmen, was auf Ressourcen oder Karteninhaberdaten zugreift ... Ich meine alles. Zu den Ereignissen, die aufgezeichnet werden sollten, gehören Anmelde, Anmeldung, Datenzugriff; Sie müssen ein sicheres Protokoll implementieren, das die Protokolle jeden Tag überprüft, um Probleme zu finden, und die Protokolle für ein Jahr sparen. Für PHP-Benutzer wäre es vorteilhaft, mit dem PSR-3-Protokollierungsstandard aus der PHP-Fig-Gruppe vertraut zu sein, die eine einheitliche und flexible Möglichkeit bietet, Ihre Protokollierung einzurichten. Anstatt hier ausführlich in die Tiefe einzutauchen, schlage ich vor, dass Sie Patrick Mulveys Einführungsartikel lesen.

Zusammenfassung

Eine Sache, die ich wirklich betonen möchte, ist, dass PCI nicht das i -Tüpfelchen ist. Es ist der grundlegende Teil des Erstellens einer Anwendung, die Kreditkartendaten verwendet. Wenn Sie eine Bewerbung schreiben, die diese Art von Daten erhält, funktioniert sie für Sie, unabhängig davon, ob Ihre Kunden sie wissen oder nicht. Der größte Teil des Inhalts liegt über der Codierungsstufe, aber es ist real und Sie müssen immer noch darauf achten. Bilder aus Fotolien

FAQs (FAQs) zur PCI -Konformität und der PHP -Entwicklung

Was ist PCI -Konformität und warum ist es für PHP -Entwickler wichtig?

PCI -Konformität bezieht sich auf die Einhaltung des PCI -DSS (Zahlungskartenbranche), eine Reihe von Sicherheitsstandards, die sicherstellen, dass alle Unternehmen, die Kreditkarteninformationen akzeptieren, verarbeiten, speichern oder übertragen, eine sichere Umgebung aufrechterhalten. Für PHP -Entwickler ist das Verständnis und die Implementierung der PCI -Einhaltung von entscheidender Bedeutung, da sie dazu beiträgt, die sensiblen Daten der Kunden zu schützen, das Risiko von Datenverletzungen zu verringern und Vertrauen bei den Benutzern aufzubauen. Die Nichteinhaltung der Vorschriften kann zu Strafen, Geldstrafen und sogar zum Verlust der Fähigkeit zur Verarbeitung von Zahlungen führen.

Wie stellen PHP -Entwickler die PCI -Einhaltung sicher?

PHP -Entwickler können die PCI -Einhaltung in mehreren wichtigen Schritten sicherstellen. Diese Schritte umfassen die Verwendung sicherer Codierungspraktiken, um häufige Schwachstellen zu verhindern, sensible Daten zu verschlüsseln, leistungsstarke Zugriffskontrollen zu implementieren, Systeme und Anwendungen regelmäßig zu testen und zu aktualisieren und die Richtlinien zur Informationssicherheit zu verwalten.

Was sind die allgemeinen Sicherheitslücken in PHP und wie können sie verhindert werden?

Einige häufige Sicherheitslücken in PHP sind SQL-Injektion, Cross-Site-Skript (XSS) und CSRF (Cross-Site Request Forgery (CSRF). Diese Schwachstellen können durch Verwendung vorbereiteter Aussagen oder parametrisierter Abfragen verhindert werden, um die SQL-Injektion, die Validierung und den sauberen Benutzereingang sowie die Anti-CSRF-Token zu verhindern, um CSRF-Angriffe zu verhindern.

Wie verarbeiten PHP -Entwickler Kreditkartendaten sicher?

PHP -Entwickler können Kreditkartendaten sicher verarbeiten, indem sie die PCI -DSS -Anforderungen folgen. Dies beinhaltet das Verschlüsselung von Karteninhaberdaten, die in einem offenen öffentlichen Netzwerk übertragen werden, gespeicherte Karteninhaberdaten, implementieren leistungsstarke Zugriffskontrollen, regelmäßige Überwachung und Prüfung des Netzwerks sowie die Wartung von Informationssicherheitsrichtlinien.

Welche Rolle spielt die Verschlüsselung bei der PCI -Konformität?

Verschlüsselung spielt eine entscheidende Rolle bei der PCI -Konformität. Es schützt sensible Daten, indem sensible Daten wie Kreditkarteninformationen in ein Format konvertiert werden, das nicht gelesen werden kann, das nur mit einem Entschlüsselungsschlüssel entschlüsselt werden kann. Dies stellt sicher, dass nicht autorisierte Personen, selbst wenn die Daten während der Übertragung abgefangen werden, sie nicht lesen oder verwenden können.

Wie implementieren PHP -Entwickler leistungsstarke Zugriffskontrollen?

PHP -Entwickler können den physischen Zugriff auf Karteninhaberdaten einschränken, indem sichergestellt wird, dass jeder Person mit Computerzugriff eine eindeutige ID zugewiesen wird, und den Zugriff auf Karteninhaberdaten auf der Grundlage von Prinzipien einschränken, dass das Unternehmen die Implementierung starker Zugangskontrollmaßnahmen implementieren muss. Darüber hinaus sollten sie die Zugriffskontrollen regelmäßig überprüfen und nach Bedarf aktualisieren.

Was sind die Konsequenzen der Nichteinhaltung der PCI -DSS?

Die Nichteinhaltung der PCI -DSS kann zu einer Reihe von Konsequenzen führen, einschließlich Bußgeldern, Strafen und sogar zum Verlust der Fähigkeit, Kreditkartenzahlungen zu verarbeiten. Darüber hinaus kann es den Ruf des Unternehmens beschädigen und zu einem Rückgang des Kundenvertrauens führen.

Wie oft sollten PHP -Entwickler testen, ob in ihren Systemen und Anwendungen Sicherheitslücken in Sicherheitslücken vorhanden sind?

PHP -Entwickler sollten ihre Systeme und Anwendungen regelmäßig auf Sicherheitslücken testen. Die Häufigkeit des Tests hängt von den spezifischen Anforderungen von PCI -DSS ab, aber als Best Practice, Systeme und Anwendungen sollten mindestens einmal im Jahr sowie nach signifikanten Änderungen getestet werden.

Was ist eine Informationssicherheitsrichtlinie und warum ist sie für die PCI -Konformität wichtig?

Informationssicherheitsrichtlinie ist eine Reihe von Regeln und Verfahren, die von einem Unternehmen zum Schutz seiner Informationsvermögen gefolgt werden. Für die Einhaltung von PCI ist es wichtig, da alle Mitarbeiter ihre Rollen und Verantwortlichkeiten beim Schutz von Karteninhaberdaten verstehen und einen Rahmen für die Implementierung und Wartung von Sicherheitskontrollen bieten.

Wie bleiben PHP -Entwickler über die neuesten PCI -DSS -Anforderungen und Best Practices für Sicherheitsversicherungen auf dem Laufenden?

PHP -Entwickler können über die neuesten PCI -DSS -Anforderungen auf dem Laufenden bleiben und die Website des offiziellen PCI -Sicherheitsnormensausschusses regelmäßig überprüft, sich für relevante Sicherheits -Newsletter und -blogs, die Teilnahme an Sicherheitskonferenzen und Webinaren abonnieren und an Sicherheitstrainungs- und Zertifizierungsprogrammen teilnehmen Sicherheitsbesten. Best Practices.

Das obige ist der detaillierte Inhalt vonPHP Master | PCI -Konformität und was es für PHP bedeutet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage