PCIコンプライアンスとPHP開発への影響を理解する
PCIは「支払いカード業界」の略ですが、多くの人にとって、疑いを持たない魂を重い法律と法的紛争で埋めることを目的とした秘密の国際カルテルによって課される曖昧な基準のセットです。真実ははるかに退屈です。実際、PCIは、クレジットカード会社と業界のセキュリティ専門家の連合によって開発された一連のセキュリティガイドラインであり、クレジットカード情報を処理する際にアプリケーションの動作を規制しています。クレジットカード会社は、これらの基準を銀行に課し、銀行は電子商取引ウェブサイトを運営している私たちに課します。この記事では、PCIに関する永続的な誤解を削除し、20,000フィートの高さからPCIについて学び、一般的なコーディングとPHPに関連する要件に焦点を当てます。
キーポイント
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の基本的な理解がない場合、これらのことについて話すポイントは何ですか?これらの要件は次のとおりです
要件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開発者はどのように強力なアクセス制御を実装しますか?
PCI DSSに準拠していないことの結果は何ですか?
PHP開発者は、セキュリティの脆弱性についてシステムとアプリケーションを定期的にテストする必要があります。テストの頻度は、PCI DSSの特定の要件に依存しますが、ベストプラクティスとして、少なくとも年に1回、および大幅な変更の後にシステムとアプリケーションをテストする必要があります。
情報セキュリティポリシーは、情報資産を保護するための会社がそれに続く一連のルールと手順です。 PCIコンプライアンスにとって重要なのは、すべての従業員がカード所有者のデータを保護する際の役割と責任を理解し、セキュリティ管理を実装および維持するためのフレームワークを提供するのに役立つためです。
PHP開発者は、最新のPCI DSS要件を最新の状態に保ち、公式のPCIセキュリティ基準委員会のウェブサイトを定期的にチェックし、関連するセキュリティニュースレターやブログを購読し、セキュリティ会議やウェビナーに参加し、セキュリティトレーニングと認定プログラムに参加することができます。安全ベストプラクティス。
以上がPHPマスター| PCIコンプライアンスとPHPにとっての意味の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。