ホームページ > バックエンド開発 > PHPチュートリアル > PHPマスター| PCIコンプライアンスとPHPにとっての意味

PHPマスター| PCIコンプライアンスとPHPにとっての意味

Christopher Nolan
リリース: 2025-02-24 09:01:11
オリジナル
387 人が閲覧しました

PHP Master | PCI Compliance and What it Means to PHP

PCIコンプライアンスとPHP開発への影響を理解する

PCIは「支払いカード業界」の略ですが、多くの人にとって、疑いを持たない魂を重い法律と法的紛争で埋めることを目的とした秘密の国際カルテルによって課される曖昧な基準のセットです。真実ははるかに退屈です。実際、PCIは、クレジットカード会社と業界のセキュリティ専門家の連合によって開発された一連のセキュリティガイドラインであり、クレジットカード情報を処理する際にアプリケーションの動作を規制しています。クレジットカード会社は、これらの基準を銀行に課し、銀行は電子商取引ウェブサイトを運営している私たちに課します。この記事では、PCIに関する永続的な誤解を削除し、20,000フィートの高さからPCIについて学び、一般的なコーディングとPHPに関連する要件に焦点を当てます。

キーポイント

  • PCI(支払いカード業界)標準は、クレジットカード会社とセキュリティの専門家によって開発されたセキュリティガイドラインであり、アプリケーションがクレジットカード情報またはデビットカード情報を処理する方法を規制しています。それらは、小規模のeコマースサイトを含む、支払いのためにクレジットカード情報を受け入れるすべての人に適しています。
  • PCI標準には、安全なネットワークの構築と維持、カード所有者データの保護、脆弱性管理手順の維持、強力なアクセス制御メカニズムの実装、ネットワークの定期的な監視とテスト、情報セキュリティポリシーの維持など、12の基本的な要件が含まれています。
  • PHP開発者は、クレジットカードデータを処理するアプリケーションを作成する際に、これらの標準に準拠する必要があります。これには、ベンダーのデフォルトのプロファイルまたはパスワードを使用せず、保存されたカード所有者データの保護と暗号化、安全なシステムとアプリケーションの開発、アクセスの制限、およびリソースとデータへのすべてのアクセスの追跡と記録が含まれます。
  • PCI標準はセキュリティガイドラインとアイデアを提供しますが、それらは特定のテクノロジーではなく、ハッカーから保護されることを保証することはできません。ただし、これらの基準を順守することで、セキュリティ侵害の可能性を減らし、会社の法的および消費者のステータスを改善することができます。
  • PCI標準のコンプライアンスは1回限りのタスクではなく、継続的な注意と年次レビューが必要です。開発者は、PCIセキュリティ基準委員会のウェブサイトおよび関連するセキュリティニュースレター、ブログ、トレーニングプログラムを通じて、最新のPCI要件とセキュリティベストプラクティスを通知する必要があります。

PCIの誤解不思議ではありませんが、PCI標準の周りには多くの誤解があります。誤解の1つは、それらがどこにも書かれていないマフィアの行動規範のようなものであるため、あなたが望む方法で解釈できるということです。もちろん、これは間違っています。 PCI標準の完全な説明を学ぶには、pcisecurityStandards.orgにアクセスしてください。もう1つの誤解は、PCIの安全基準が銀行や大規模な小売業者などの「大企業」にのみ適用されることです。彼らは、商品の支払いにクレジットカード情報を受け入れるすべての人に適しています。お母さんが有名なレモンパイを販売するためにPHPウェブサイトを書いた場合、PCIガイドラインに合ったシステムがあります。 3番目の誤解は、PCI標準に従うと、悪意のあるハッキングから保護され、データが安全に保護されることです。もちろん、これは良いことですが、真実は、PCI標準は特定のテクニックではなく、ガイドとアイデアであるということです(すべてのアーキテクチャとプラットフォームに適合するには曖昧でなければなりません)。明らかに、セキュリティに集中すればするほど、攻撃される可能性が低くなりますが、誰でも攻撃される可能性があります。少なくともPCIの期待に応えようとした場合、あなたのレビューは法律と消費者の両方の点でより良くなります。最後に、PCIは1つだけで達成できるものではなく、深呼吸をします。この標準では、年に一度PCIレビューを行う必要があるため、品質保証作業や配偶者の聴取、継続的な作業のようなものです。単純な事実は、PCIは、サイズに関係なく、クレジットカードデータを処理する必要があるアプリケーションに取り組むすべてのプログラマーが知っているものです。はい、それがディーラーが現金のみを集める理由です。

PCIの基本

PCI標準は、12の基本要件で構成されています。標準は約2年ごとに更新され、その間にPCI世界のサブセットを扱うさまざまなより具体的なガイドファイルが公開されています。たとえば、2013年2月、PCIスタッフはPCIとクラウドコンピューティングについて議論するホワイトペーパーを発行しました。これらの特別なレポートは、PCI Webサイトからも入手できます。ご覧のとおり、多くのPCI要件はネットワーク関連のものですが、完全なPCIの基本的な理解がない場合、これらのことについて話すポイントは何ですか?これらの要件は次のとおりです

  • エリア1 - 安全なネットワークを確立して維持する要件1 - 環境を保護するためにファイアウォールをインストールします。
    • 要件2 - ベンダーのデフォルトプロファイルまたはパスワードを使用しないでください。
  • エリア2 - カード所有者データを保護します
  • 要件3 - 保存されたカード所有者データを保護します。
    • 要件4 - オープンパブリックネットワークで送信されるカードホルダーデータを暗号化します。
  • エリア3 - 脆弱性管理手順を維持
  • 要件5 - 使用して、ウイルス対策ソフトウェアを定期的に更新します。
    • 要件6-安全なシステムとアプリケーションを開発および維持します。
  • エリア4 - 強力なアクセス制御メカニズムを実装
  • 要件7 - 理解する必要がある原則に基づいて、カード所有者データへのアクセスを制限します。
    • 要件8 - コンピューターにアクセスできる各人に一意のIDを割り当てます。
    • 要件9 - カードホルダーデータへの物理的アクセスを制限します。
  • エリア5 - 定期的な監視とテストネットワーク
  • 要件10 - ネットワークリソースとカード所有者データへのすべてのアクセスを追跡および監視/記録します。
    • 要件11 - 安全システムとプロセスの定期的なテスト。
  • エリア6 - 情報セキュリティポリシーを維持
  • 要件12-情報セキュリティに対処するためのポリシーを維持します。
  • これらのプロジェクトの一部は、ポリシーの決定、つまり、カード情報を保護し、ネットワークとアプリケーションの全体的なセキュリティを確保するためにどのように働くかを明確に述べる決定に関連しています。他の要件は、ネットワーク自体と、それを保護するために使用できるソフトウェアに関係しています。それらのいくつかには、プロセスの設計フェーズ、アプリケーションの構築とセットアップの設計が含まれます。コードに関連する要件はほとんどありません。また、安全を保つことを推奨する特定のプログラミング手法を説明する要件はありません。長さを比較的短くするために、皮肉と知恵(70:30の比率)を制限し、最後の2つのグループに焦点を当てます。

要件2-ベンダーのデフォルト構成ファイル/パスワードを使用しないでください

多くの点で、これはほとんど自明です。私たちがこれらのことを心配し始めて以来、警備員はこれを私たちに言ってきました。しかし、使用するソフトウェアの多く(MySQLなど)でデフォルトのアカウントとパスワードを使用するのがどれほど簡単か(特に最初に何かをインストールし、すべてが「テスト」状態にある場合)。ここでの危険は増加します。なぜなら、私たちのほとんどは、すべてをゼロから行うのではなく、いくつかの基本的なソフトウェアを中心にアプリケーションを構築するためです。暗号化とキーストレージを処理するために使用するパッケージ(以下を参照)であるか、アプリケーション全体のフレームワークである可能性があります。いずれにせよ、覚えやすく、実装しやすい:デフォルトのアカウントを使用しないでください。

要件3-保存されたカード所有者データを保護します

私が覚えているほとんどの有名な小売ウェブサイトのハックでは、ウェブサイトによって保存されたカードやその他のデータが含まれていたので、これをPCI標準の最も重要な部分としてリストしました。明らかに、保存するカードデータはすべて暗号化する必要があります。そして、暗号化の良い仕事をする必要があります。暗号化を非常によく知っている人にとっては、データ暗号化の良い仕事をすることは、暗号化キーをうまく管理していることを意味します。キー管理は、暗号化プロセスで使用されるキーの生成、保存、および更新の問題を中心に展開します。それらを保存することは、誰もシステムに入ってキーを盗むことができないようにしたいので、大きな問題になる可能性があります。管理戦略は、キーを複数の部分に分割する方法が異なります。深い。もちろん、商用製品を使用して暗号化を処理する場合は、主要な管理をそれらに任せることができますが、プロセスが信頼できることを確認し、アプローチに合っていることを確認することができます。ほとんどの商用製品はPCIを念頭に置いて開発されているため、PCI標準に従って構築されますが、これはまだ二次検査の実行を妨げません。さらに、保存するデータの量を最小限に抑えたり排除したりすると、データを保護するタスクがはるかに簡単になります。つまり、カード所有者のデータは、名前、誕生日、カード番号、有効期間、カード検証(CV)コード(カードの背面または前面の3桁または4桁)などです。保存するアイテムが少ないほど、暗号化する必要が少なくなり、責任が少なくなります。幸いなことに、これはPCI標準のかなり具体的な領域であり、保存できないデータを明確に定義します。カード番号(PAN - メインアカウント番号)、カードホルダー名、有効期限、およびサービスコードを保存できます。パンを保存する場合は、表示したい場合はブロックする必要があり、最初の6桁と最後の4桁のみがせいぜい表示されます。ピン、CVコード、または磁気ストライプの内容物全体を保存することはできません。設計段階で自問しなければならない質問は、あなたが本当に維持したいこの迷惑なデータのどれだけの量です。それを維持する唯一の本当の理由は、次回は顧客に簡単な体験を提供したいということです。誕生日を迎えることができ、誕生日にフレンドリーな小さな招待状を送ることができます。このすべてのデータは暗号化され、保護されている必要があるため、信頼できる商業用途を取得してください。要件4(送信されるデータを暗号化する)はこの部分の一部と見なされますが、インフラストラクチャの一部と見なされ、詳細は説明しません。

要件6-安全なシステムとアプリケーションの開発と維持

これはコード関連の要件です。特定の機能やクラスをターゲットにしていませんが、少なくとも一般的な安全基準に従って、できるだけ安全にするようにしてください。そのため、アプリケーションが明らかな攻撃に対して脆弱にならないコーディングテクニック(言語に関係なく)を使用するだけです。たとえば、フォームデータを受け入れるときに予防措置を講じることにより、SQL注入を防ぎ、XSSなどをブロックしようとします。より一般的なセキュリティの問題のいくつかを避ける詳細については、SitePointに投稿された他の記事(この記事とこの記事、および「安全」を検索する場合に見つけることができる他の記事を参照してください。

には7と8が必要です - 制限付きアクセスと一意のID これらの両方は、アプリケーションにアクセスする方法に関連しているため、コーディングとデザインの間のどこかにあります。各訪問者に一意のIDを持たせることを要求することは問題ありません。私はあなたがこれを行うことを可能にするいくつかのウェブサイトを考えることができますが、それはそれ自体が悪ではありませんが、グループプロファイルを使用することは危険であり、彼らがあまり許可を持っていないことを確認するために特に注意する必要があります。一般的に言えば、IDが保存したIDでなくても、一意のIDを設定するようにしてください。たとえば、人にゲストとしてログインすることもできますが、すぐにバックグラウンドでイベントの一意の構成ファイルを作成します。また、カードホルダーデータへの物理的アクセスを制限したいと考えています。これは未来のヒントかもしれません。アイザック・アシモフの素晴らしい旅のような人々をサブミクロスピックサイズに縮小し、それらをストレージデバイスに注入して、カードデータ0の1と1を取得するか、または関連する可能性がありますサーバールームをロックし、すべての訪問者のバッジに、バックアップテープなどに近づくことができません。

要件10-リソース/データへのすべてのアクセスの追跡と記録

最後に、リソースやカード所有者のデータにアクセスするすべてのものを追跡および記録することの重要性を過小評価しないでください...私はすべてを意味します。記録する必要があるイベントには、ログイン、ログアウト、データの更新が含まれます。毎日ログをチェックする安全なログを実装して問題を見つけ、1年間ログを保存する必要があります。 PHPユーザーの場合、PHP-FIGグループのPSR-3ロギング標準に精通していることは有益です。これは、ロギングをセットアップする統一された柔軟な方法を提供します。ここで深く飛び込むのではなく、パトリック・マルベイの入門記事を読むことをお勧めします。

概要

私が本当に強調したいことの1つは、PCIがケーキのアイシングではないということです。これは、クレジットカードデータを使用するアプリケーションを作成する基本的な部分です。この種のデータを受け取るアプリケーションを書いている場合、顧客が知っているかどうかに関係なく、それはあなたのために機能します。コンテンツのほとんどはエンコードレベルを上回っていますが、それは本物であり、それでもあなたはそれに注意を払う必要があります。 Fotoliaの写真

PCIコンプライアンスとは何ですか?なぜPHP開発者にとって重要なのですか?

PCIコンプライアンスとは、クレジットカード情報を受け入れ、処理、保存、または送信するすべての企業が安全な環境を維持するように設計された一連のセキュリティ基準である、支払いカード業界のデータセキュリティ基準(PCI DSS)のコンプライアンスを指します。 PHP開発者の場合、PCIコンプライアンスの理解と実装は、顧客の機密データを保護し、データ侵害のリスクを減らし、ユーザーとの信頼を築くのに役立つため、重要です。規制に従わないと、罰金、罰金、さらには支払いを処理する能力の損失につながる可能性があります。

PHP開発者はどのようにしてPCIコンプライアンスを確保しますか?

PHP開発者は、いくつかの重要なステップを通じてPCIコンプライアンスを確保できます。これらの手順には、一般的な脆弱性を防ぐために安全なコーディングプラクティスを使用し、機密データの暗号化、強力なアクセス制御の実装、定期的にシステムとアプリケーションのテストと更新、情報セキュリティポリシーの維持が含まれます。

PHPの一般的なセキュリティの脆弱性とそれらを防ぐ方法は何ですか?

PHPの一般的なセキュリティの脆弱性には、SQLインジェクション、クロスサイトスクリプト(XSS)、およびクロスサイトリクエストフォーファリー(CSRF)が含まれます。これらの脆弱性は、SQL注入を防ぐために事前に準備されたステートメントまたはパラメーター化されたクエリを使用して、ユーザー入力を検証およびクリーン化することにより、CSRF攻撃を防ぐためにAnti-CSRFトークンを防ぐことができます。

PHP開発者はクレジットカードデータを安全に処理する方法をどのように処理しますか?

PHP開発者は、PCI DSS要件に従うことにより、クレジットカードデータを安全に処理できます。これには、オープンパブリックネットワークに送信されるカード所有者データの暗号化、保存されたカード所有者データの保護、強力なアクセス制御の実装、ネットワークの定期的な監視とテスト、情報セキュリティポリシーの維持が含まれます。

PCIコンプライアンスで暗号化はどのような役割を果たしますか?

暗号化は、PCIコンプライアンスにおいて重要な役割を果たします。クレジットカード情報などの機密データを読み取れない形式に変換することにより、機密データを保護するのに役立ちます。これは、復号化キーを使用してのみ解読できます。これにより、伝送中にデータが傍受されたとしても、不正な個人が読み取ったり使用したりできないことが保証されます。

PHP開発者はどのように強力なアクセス制御を実装しますか?

PHP開発者は、コンピューターアクセスを持つ各人に一意のIDが割り当てられていることを確認することにより、カード所有者データへの物理的アクセスを制限し、ビジネスが強力なアクセス制御測定を実装する必要がある原則に基づいてカード所有者データへのアクセスを制限できます。さらに、アクセスコントロールを定期的に確認し、必要に応じて更新する必要があります。

PCI DSSに準拠していないことの結果は何ですか?

PCI DSSを遵守しなかった場合、罰金、罰則、さらにはクレジットカードの支払いを処理する能力の損失など、さまざまな結果につながる可能性があります。さらに、会社の評判を損ない、顧客の信頼の低下につながる可能性があります。

システムとアプリケーションにセキュリティの脆弱性がある場合、PHP開発者はどのくらいの頻度でテストする必要がありますか?

PHP開発者は、セキュリティの脆弱性についてシステムとアプリケーションを定期的にテストする必要があります。テストの頻度は、PCI DSSの特定の要件に依存しますが、ベストプラクティスとして、少なくとも年に1回、および大幅な変更の後にシステムとアプリケーションをテストする必要があります。

情報セキュリティポリシーとは何ですか?また、なぜPCIコンプライアンスにとって重要なのですか?

情報セキュリティポリシーは、情報資産を保護するための会社がそれに続く一連のルールと手順です。 PCIコンプライアンスにとって重要なのは、すべての従業員がカード所有者のデータを保護する際の役割と責任を理解し、セキュリティ管理を実装および維持するためのフレームワークを提供するのに役立つためです。

PHP開発者は、最新のPCI DSS要件とセキュリティベストプラクティスをどのように最新の状態に保ちますか?

PHP開発者は、最新のPCI DSS要件を最新の状態に保ち、公式のPCIセキュリティ基準委員会のウェブサイトを定期的にチェックし、関連するセキュリティニュースレターやブログを購読し、セキュリティ会議やウェビナーに参加し、セキュリティトレーニングと認定プログラムに参加することができます。安全ベストプラクティス。

以上がPHPマスター| PCIコンプライアンスとPHPにとっての意味の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート