PCI bermaksud "Industri Kad Pembayaran", tetapi bagi kebanyakan ia adalah satu set piawaian samar -samar yang dikenakan oleh kartel antarabangsa rahsia yang bertujuan untuk menguburkan jiwa yang tidak curiga dengan undang -undang berat dan pertikaian undang -undang. Kebenarannya lebih membosankan. Malah, PCI adalah satu set garis panduan keselamatan yang dibangunkan oleh gabungan syarikat kad kredit dan pakar keselamatan industri untuk mengawal selia bagaimana aplikasi berkelakuan apabila memproses maklumat kredit atau kad debit. Syarikat kad kredit mengenakan piawaian ini ke atas bank, yang kemudiannya dikenakan oleh bank-bank kepada kita yang mengendalikan laman web e-dagang. Dalam artikel ini, kami akan membuang beberapa salah faham yang berterusan mengenai PCI, belajar tentang PCI dari ketinggian 20,000 kaki, dan kemudian memberi tumpuan kepada keperluan yang berkaitan dengan pengekodan umum dan PHP.
mata utama
Piawaian PCI (Industri Kad Pembayaran) PCI adalah garis panduan keselamatan yang dibangunkan oleh syarikat kad kredit dan pakar keselamatan untuk mengawal selia bagaimana aplikasi mengendalikan maklumat kad kredit atau debit. Mereka sesuai untuk semua orang yang menerima maklumat kad kredit untuk pembayaran, termasuk tapak e-dagang kecil. Tidak hairanlah, terdapat banyak salah faham di sekitar piawaian PCI. Salah satu kesalahpahaman ialah mereka seperti kod tingkah laku mafia, tidak ditulis di mana -mana, sehingga mereka dapat ditafsirkan seperti yang anda inginkan. Sudah tentu, ini tidak betul. Untuk mengetahui penerangan lengkap piawaian PCI, lawati pcisecuritystandards.org. Satu lagi salah faham ialah piawaian keselamatan PCI hanya digunakan untuk "syarikat besar" seperti bank dan peruncit besar. Mereka sesuai untuk semua orang yang menerima maklumat kad kredit untuk membayar barang tersebut. Jika anda menulis laman web PHP untuk ibu anda menjual pai lemonnya yang terkenal, anda mempunyai sistem yang sesuai dengan garis panduan PCI. Kesalahpahaman ketiga ialah jika anda mengikuti piawaian PCI, anda akan dilindungi daripada penggodaman berniat jahat dan data anda akan tetap selamat. Sudah tentu, ini adalah baik, tetapi kebenarannya ialah piawaian PCI adalah panduan dan idea, bukan teknik khusus (mereka harus samar -samar untuk menyesuaikan semua seni bina dan platform). Jelas sekali, semakin banyak anda memberi tumpuan kepada keselamatan, peluang yang kurang anda akan diserang, tetapi sesiapa sahaja boleh diserang. Jika anda sekurang -kurangnya cuba memenuhi jangkaan PCI, maka ulasan anda akan lebih baik dari segi undang -undang dan pengguna. Akhirnya, PCI bukan sesuatu yang boleh anda capai dengan hanya satu dan kemudian menarik nafas panjang. Piawaian ini memerlukan anda melakukan kajian PCI sekali setahun, jadi ia seperti kerja jaminan kualiti atau mendengar pasangan anda, kerja yang berterusan. Fakta mudah ialah PCI adalah sesuatu yang setiap pengaturcara yang bekerja pada aplikasi yang memproses data kad kredit perlu diketahui, tanpa mengira saiz. Ya, itulah sebabnya peniaga hanya mengumpulkan wang tunai. Asas PCI piawaian PCI terdiri daripada 12 keperluan asas. Standard ini dikemas kini kira -kira setiap dua tahun, di mana pelbagai fail panduan yang lebih spesifik diterbitkan yang menangani subset dunia PCI. Sebagai contoh, pada bulan Februari 2013, kakitangan PCI menerbitkan kertas putih yang membincangkan PCI dan pengkomputeran awan. Laporan khas ini juga boleh didapati dari laman web PCI. Seperti yang akan kita lihat, banyak keperluan PCI lebih berkaitan dengan rangkaian, tetapi jika anda tidak mempunyai pemahaman asas PCI penuh, apa gunanya bercakap tentang perkara-perkara ini? Keperluan ini adalah: Beberapa projek ini berkaitan dengan keputusan dasar, iaitu, keputusan yang jelas menyatakan bagaimana anda bekerja untuk melindungi maklumat kad dan memastikan keselamatan keseluruhan rangkaian dan aplikasi. Keperluan lain mempunyai kaitan dengan rangkaian itu sendiri dan perisian yang boleh anda gunakan untuk melindunginya. Sesetengah daripada mereka melibatkan fasa reka bentuk proses, bagaimana anda membina dan menyediakan permohonan anda. Terdapat beberapa keperluan yang berkaitan dengan kod, dan tidak ada keperluan untuk menggambarkan teknik pengaturcaraan tertentu yang mengesyorkan anda tetap selamat. Untuk memastikan panjangnya agak pendek, saya akan mengehadkan ironi dan kebijaksanaan saya (nisbah 70:30) dan memberi tumpuan kepada dua kumpulan terakhir. Keperluan 2 - Jangan gunakan fail/kata laluan konfigurasi lalai vendor Dalam banyak cara, ini hampir jelas. Kakitangan keselamatan telah memberitahu kami ini sejak kami mula bimbang tentang perkara -perkara ini. Tetapi ia menghairankan betapa mudahnya menggunakan akaun lalai dan kata laluan dalam banyak perisian yang kami gunakan (seperti MySQL) (terutamanya apabila anda mula -mula memasang sesuatu dan segala -galanya berada dalam keadaan "ujian"). Bahaya di sini meningkat kerana kebanyakan kita membina aplikasi kita di sekitar beberapa perisian asas, dan bukannya melakukan segala -galanya dari awal. Ia mungkin hanya pakej yang kami gunakan untuk mengendalikan penyulitan dan penyimpanan utama (lihat di bawah), atau mungkin rangka kerja untuk keseluruhan aplikasi. Sama ada cara, mudah diingat, mudah dilaksanakan: Jangan gunakan akaun lalai. Keperluan 3 - Lindungi data pemegang kad yang disimpan Dalam kebanyakan hacks laman web runcit berprofil tinggi yang saya ingat, terdapat melibatkan kecurian kad atau data lain yang disimpan oleh laman web, jadi saya menyenaraikan ini sebagai bahagian paling penting dalam piawaian PCI. Jelas sekali, mana -mana data kad yang anda simpan harus disulitkan. Dan anda perlu melakukan kerja penyulitan yang baik. Bagi mereka yang mengetahui penyulitan dengan baik, anda tahu bahawa melakukan kerja penyulitan data yang baik bermakna anda telah menguruskan kunci penyulitan dengan baik. Pengurusan utama berkisar mengenai isu menjana, menyimpan, dan mengemas kini kekunci yang digunakan dalam proses penyulitan. Menyimpannya boleh menjadi masalah besar kerana anda ingin memastikan tiada siapa yang boleh masuk ke dalam sistem dan mencuri kunci. Strategi pengurusan berbeza -beza dalam cara membahagikan kunci ke dalam pelbagai bahagian; dalam. Sudah tentu, jika anda menggunakan produk komersial untuk mengendalikan penyulitan, anda boleh meninggalkan pengurusan utama kepada mereka, walaupun anda ingin memastikan prosesnya boleh dipercayai dan ia sesuai dengan pendekatan anda. Kebanyakan produk komersial dibangunkan dengan PCI dalam fikiran dan oleh itu akan dibina mengikut piawaian PCI, tetapi ini masih tidak menghalang anda daripada melakukan pemeriksaan sekunder. Di samping itu, jika anda meminimumkan atau menghapuskan jumlah data yang anda simpan, tugas melindungi data akan menjadi lebih mudah. Iaitu, data pemegang kad boleh menjadi nama mereka, hari jadi, nombor kad, tempoh kesahihan, kod pengesahan kad (CV) (tiga atau empat digit di bahagian belakang atau depan kad), dll. Lebih sedikit item yang anda simpan, semakin kurang anda perlu menyulitkan, dan kurang tanggungjawab yang anda miliki. Nasib baik, ini adalah kawasan yang cukup spesifik piawaian PCI yang jelas menentukan data yang anda boleh dan tidak dapat disimpan. Anda boleh menyimpan nombor kad (PAN - nombor akaun utama), nama pemegang kad, tarikh tamat tempoh dan kod perkhidmatan. Jika anda menyimpan kuali, maka jika anda mahu memaparkannya, anda perlu menyekatnya, dan hanya enam digit yang pertama dan terakhir yang boleh dipaparkan paling banyak. Anda tidak boleh menyimpan keseluruhan kandungan pin, kod CV, atau jalur magnet. Persoalan yang perlu anda tanyakan kepada diri sendiri semasa fasa reka bentuk adalah berapa banyak data yang menjengkelkan ini yang anda ingin simpan. Satu -satunya sebab sebenar untuk menyimpannya ialah anda ingin memberikan pengalaman mudah untuk pelanggan anda pada masa akan datang. Anda boleh menyimpan hari lahir anda supaya anda dapat menghantar jemputan kecil yang mesra pada hari lahir anda. Semua data ini mesti disulitkan dan dilindungi, jadi pastikan anda mendapat penggunaan komersil yang boleh dipercayai daripadanya. Keperluan 4 (menyulitkan sebarang data yang dihantar) dianggap sebahagian daripada bahagian ini, tetapi saya akan menganggapnya sebagai sebahagian daripada infrastruktur dan tidak akan masuk ke dalam butiran. Keperluan 6 - Membangun dan menyelenggara sistem dan aplikasi yang selamat Ini adalah keperluan yang berkaitan dengan kod. Tidak mensasarkan fungsi atau kelas tertentu, tetapi sekurang -kurangnya pastikan anda mengikuti piawaian keselamatan umum dan cuba membuat barangan anda selamat. Oleh itu, anda hanya menggunakan teknik pengekodan (tanpa mengira bahasa) yang tidak akan membuat aplikasi anda terdedah kepada serangan yang jelas. Sebagai contoh, anda cuba menghalang suntikan SQL dengan mengambil langkah berjaga -jaga apabila menerima data borang, anda cuba menyekat XSS, dll. Untuk maklumat lanjut mengenai mengelakkan beberapa isu keselamatan yang lebih biasa, lihat beberapa artikel lain yang disiarkan di SitePoint (artikel ini dan artikel ini, dan artikel lain yang anda dapati jika anda mencari "selamat". memerlukan 7 dan 8 - akses terhad dan ID unik Kedua -dua perkara ini berkaitan dengan cara anda mengakses permohonan anda, jadi di antara pengekodan dan reka bentuk. Tidak semestinya masalah untuk menghendaki setiap pelawat mempunyai ID yang unik kecuali - anda berlaku untuk membolehkan orang ramai masuk dan membeli -belah melalui profil tetamu. Saya boleh memikirkan beberapa laman web yang membolehkan anda melakukan ini, yang tidak jahat dengan sendirinya, tetapi menggunakan profil kumpulan adalah berbahaya dan anda perlu berhati -hati untuk memastikan mereka tidak mempunyai banyak kebenaran. Secara umumnya, anda harus cuba menetapkan ID yang unik, walaupun ID bukan ID yang anda simpan. Sebagai contoh, anda boleh mempunyai orang log masuk sebagai tetamu, tetapi kemudian membuat fail konfigurasi yang unik untuk acara di latar belakang. Kami juga mahu mengehadkan akses fizikal kepada data pemegang kad. Ini mungkin sedikit masa depan, apabila kita dapat mengecilkan orang ke saiz submikroskopik seperti perjalanan hebat Isaac Asimov dan menyuntiknya ke dalam peranti penyimpanan untuk mendapatkan 1 dan 1 data kad 0 ... atau ia juga berkaitan Untuk bilik pelayan terkunci, lencana untuk semua pelawat, tidak membenarkan sesiapa sahaja untuk mendekati pita sandaran, dll. Keperluan 10 - Penjejakan dan Rakaman Semua Akses ke Sumber/Data Akhir sekali, jangan meremehkan kepentingan menjejaki dan merakam segala -galanya yang mengakses sumber atau data pemegang kad ... Maksud saya segala -galanya. Peristiwa yang perlu direkodkan termasuk log masuk, logout, akses data; Anda mesti melaksanakan log selamat yang memeriksa balak setiap hari untuk mencari masalah dan menjimatkan log selama satu tahun. Bagi pengguna PHP, ia akan memberi manfaat kepada standard pembalakan PSR-3 dari kumpulan PHP-FIG, yang menyediakan cara bersatu dan fleksibel untuk menubuhkan pembalakan anda. Daripada menyelam ke dalamnya secara mendalam di sini, saya cadangkan anda membaca artikel pengenalan Patrick Mulvey. Ringkasan Satu perkara yang saya mahu benar -benar menekankan ialah PCI bukanlah icing pada kek. Ia adalah bahagian asas untuk membuat aplikasi yang menggunakan data kad kredit. Jika anda menulis aplikasi yang menerima data seperti ini, ia akan berfungsi untuk anda tanpa mengira sama ada pelanggan anda tahu atau tidak. Kebanyakan kandungan berada di atas tahap pengekodan, tetapi ia adalah benar dan anda masih perlu memberi perhatian kepadanya. gambar dari Fotolia Pematuhan PCI merujuk kepada pematuhan Standard Keselamatan Data Industri Kad Pembayaran (PCI DSS), satu set piawaian keselamatan yang direka untuk memastikan semua syarikat yang menerima, memproses, menyimpan atau menghantar maklumat kad kredit mengekalkan persekitaran yang selamat. Bagi pemaju PHP, memahami dan melaksanakan pematuhan PCI adalah penting kerana ia membantu melindungi data sensitif pelanggan, mengurangkan risiko pelanggaran data, dan membina kepercayaan dengan pengguna. Kegagalan mematuhi peraturan boleh menyebabkan penalti, denda, dan juga kehilangan keupayaan untuk memproses pembayaran. pemaju PHP dapat memastikan pematuhan PCI melalui beberapa langkah utama. Langkah -langkah ini termasuk menggunakan amalan pengekodan yang selamat untuk mengelakkan kelemahan biasa, menyulitkan data sensitif, melaksanakan kawalan akses yang kuat, menguji dan mengemas kini sistem dan aplikasi secara kerap, dan mengekalkan dasar keselamatan maklumat. Beberapa kelemahan keselamatan biasa dalam PHP termasuk suntikan SQL, skrip lintas tapak (XSS), dan pemalsuan permintaan lintas tapak (CSRF). Kerentanan ini boleh dicegah dengan menggunakan pernyataan yang telah disediakan atau pertanyaan parameter untuk mencegah suntikan SQL, mengesahkan dan membersihkan input pengguna, dan token anti-CSRF untuk mencegah serangan CSRF. pemaju PHP boleh memproses data kad kredit dengan selamat dengan mengikuti keperluan PCI DSS. Ini termasuk menyulitkan data pemegang kad yang dihantar pada rangkaian awam terbuka, melindungi data pemegang kad yang disimpan, melaksanakan kawalan akses yang kuat, memantau dan menguji rangkaian secara teratur, dan mengekalkan dasar keselamatan maklumat. penyulitan memainkan peranan penting dalam pematuhan PCI. Ia membantu melindungi data sensitif dengan menukar data sensitif seperti maklumat kad kredit ke dalam format yang tidak dapat dibaca, yang hanya boleh disahsulit menggunakan kunci penyahsulitan. Ini memastikan bahawa walaupun data dipintas semasa penghantaran, individu yang tidak dibenarkan tidak dapat membaca atau menggunakannya. pemaju PHP boleh mengehadkan akses fizikal kepada data pemegang kad dengan memastikan setiap orang dengan akses komputer diberikan ID yang unik, dan menyekat akses kepada data pemegang kad berdasarkan prinsip -prinsip yang perlu diketahui oleh perniagaan untuk mengetahui melaksanakan langkah -langkah kawalan akses yang kukuh. Di samping itu, mereka perlu mengkaji semula kawalan akses secara teratur dan mengemas kini mereka seperti yang diperlukan. Kegagalan untuk mematuhi PCI DSS boleh membawa kepada pelbagai akibat, termasuk denda, penalti, dan juga kehilangan keupayaan untuk memproses pembayaran kad kredit. Di samping itu, ia boleh merosakkan reputasi syarikat dan membawa kepada penurunan kepercayaan pelanggan. pemaju PHP harus secara kerap menguji sistem dan aplikasi mereka untuk kelemahan keselamatan. Kekerapan ujian bergantung kepada keperluan khusus PCI DSS, tetapi sebagai amalan terbaik, sistem dan aplikasi harus diuji sekurang -kurangnya sekali setahun, serta selepas sebarang perubahan penting. Dasar Keselamatan Maklumat adalah satu set peraturan dan prosedur yang diikuti oleh syarikat untuk melindungi aset maklumatnya. Adalah penting untuk pematuhan PCI kerana ia membantu memastikan semua pekerja memahami peranan dan tanggungjawab mereka dalam melindungi data pemegang kad dan menyediakan rangka kerja untuk melaksanakan dan mengekalkan kawalan keselamatan. pemaju php boleh terus dikemaskini dengan keperluan PCI DSS terkini dan dengan kerap memeriksa laman web Jawatankuasa Piawaian Keselamatan PCI rasmi, melanggan surat berita dan blog keselamatan yang relevan, menghadiri persidangan dan webinar keselamatan, dan mengambil bahagian dalam latihan dan program pensijilan keselamatan Amalan terbaik keselamatan.
Soalan Lazim (Soalan Lazim) Mengenai Pematuhan PCI dan Pembangunan PHP Apakah pematuhan PCI dan mengapa penting bagi pemaju PHP?
Bagaimana pemaju PHP memastikan pematuhan PCI?
Apakah kelemahan keselamatan bersama dalam PHP dan bagaimana untuk mencegahnya?
Bagaimana pemaju PHP dengan selamat memproses data kad kredit?
Apakah peranan yang dimainkan oleh penyulitan dalam pematuhan PCI?
Bagaimana pemaju PHP melaksanakan kawalan akses yang kuat?
Apakah akibat tidak mematuhi PCI DSS?
Berapa kerapkah pemaju PHP menguji jika terdapat kelemahan keselamatan dalam sistem dan aplikasi mereka?
Apakah dasar keselamatan maklumat dan mengapa penting bagi pematuhan PCI?
Bagaimana pemaju PHP tetap up to date dengan keperluan PCI DSS terkini dan amalan terbaik keselamatan?
Atas ialah kandungan terperinci PHP Master | Pematuhan PCI dan apa maksudnya kepada PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!