First, PCI compliance involves more than just your website. If your business takes credit card numbers over the phone, has face-to-face transactions, or keeps paper records that contain credit card numbers there are PCI requirements concerning that aspect of your business that has nothing to do with your website. This article addresses the PCI requirements specifically related to ecommerce transactions.
Do I Need To Worry About PCI Compliance?
Anyone who has a business that receives payments from customers who use their credit cards to pay needs to be PCI compliant – even if you only receive one credit card payment per year. The volume of transactions does not make a difference. Even if your website uses a 3rd party service like PayPal, Google Checkout, or Mijireh you still need to be PCI compliant because your business (not necessarily your website) receives payments via credit card.
What Level Of PCI Compliance Do I Need?
Even if your website does not store credit card data, if it transmits credit card data you need to complete the Self-Assessment Questionnaire C (SAQ C) in order to be compliant. If your website has a form that collects credit card data, and the domain name in the web browser is your domain name, then your server needs to be PCI compliant and you need to complete SAQ C.
If ALL cardholder data function are outsourced to a 3rd party like Mijireh, and your website does not store, process, or transmit card holder data, you only have to fill out Self-Assessment Questionnaire A (SAQ A).
If your website connects with a payment gateway directly over an API call, you MUST complete and comply with SAQ C.
What Does Self-Assessment Questionnaire C Require In Order To Be PCI Compliant?
It is very challenging to be compliant with all of the requirements of Self-Assessment Questionnaire C. Here are some direct quotes of the requirements from SAQ C that pose the most trouble and expense. You may download and review Self-Assessment Questionnaire C for yourself here.
Section 1.3: Does the firewall configuration prohibit direct public access between the Internet and any system component in the cardholder data environment…
Explanation of Section 1.3: The cardholder data environment includes all components of your website including the database. For most websites, including WordPress websites, this involves your web server and your database server. This requirement means that your database server must be on it’s own, physical server – not on the same box as your web server – and that you must connect to it over a Virtual Private Network. Using PHPMyAdmin, for example, is not a PCI Compliant way to manage a database.
Even if your database does not store credit card information, it is responsible for providing content to your website which does collect and transmit the cardholder data and, therefore, is part of the cardholder data environment.
Section 2.3: Is all non-console administrative access encrypted as follows:
Use technologies such as SSH, VPN, or SSL/TLS for web-based management and other non-console administrative access.
Explanation of Section 2.3: If your web site allows you to FTP in (even if you don’t personally choose some other means other than FTP) to make updates to your website, then your server is not PCI compliant. FTP is a form non-encrypted access to your server. A PCI compliant server must disable FTP entirely.
Section 6.1: (a) Are all system components and software protected from known vulnerabilities by having the latest vendor-supplied security patches installed? (b) Are critical security patches installed within one month of release?
Explanation of Section 6.1: If you host your website on a shared server, you will have no control over which security patches get installed and when those patches are installed. Unless you have the ability to install your own security patches or have a written agreement with your web hosting provider that this requirement will be met, your server is not PCI compliant.
An easy way to check is to see what version of PHP and what version of MySQL your server is running. The vast majority of web hosts do not update their software quickly enough to meet this requirement. For example, at the time of this writing, Rackspace Cloud Sites is still running PHP 5.2.13 which was released on February 25th, 2010 over 2 YEARS ago!
Section 8.3: Is two-factor authentication incorporated for remote access (network- level access originating from outside the network) to the network by employees, administrators, and third parties?
Explanation of Section 8.3: An example of two factor authentication is logging in with a username and password then, before gaining access to the system, you also get a phone call to verify your identity. If you can log into your system with just a username and password, your server is not PCI compliant.
Section 11.2: Are internal and external network vulnerability scans run at least quarterly and after any significant change in the network…
Explanation of Section 11.2: You need to subscribe to a security and vulnerability scanning service and have those scans run at least once every 3 months.
What If I Use A System That Passes Credit Card Data Directly To My Payment Processor?
Even if directly passing card holder data to a payment processor was PCI compliant, it is still not as secure as using 3rd party service such as Mijireh, and you will sacrifice the ability to design the look of your checkout page. Mijireh solves this problem by allowing you to completely design your own checkout page but have it hosted on our secure ecommerce platform.