While maintaining your eCommerce store’s security will uphold your reputation and avoid downtime, you are required to abide by Payment Card Industry Data Security Standards (PCI DSS) in order to process customer credit card data. While this list is not a comprehensive outline on how to pass and maintain PCI compliance, it can help protect you from the most common types of attacks and vulnerabilities.
Adopt and maintain a strong password policy
A password policy outlines your password requirements. The best practices for a password policy include:
- Use only unique passwords.
- Establish complexity requirements.
- Change your password regularly.
- Do not reuse passwords.
Configure a custom path for the administrator panel
If someone can easily locate your administrator login page, then you are more vulnerable to brute force attacks. Many, but not all, brute force attacks use scripts specifically designed to check the /admin path for your login page. Therefore, obscuring the path to the Magento Administrator Panel can help prevent intrusions. Although this will not make your store immune to brute force attacks, it will deflect the attacks relying on those scripts.
Deploy changes responsibly
If deployed without care, extensions and themes can give attackers a path to your store’s most critical areas or simply break your site. To minimize these dangers, observe the following guidelines:
- Only obtain extensions from official, legitimate sources, such as Magento Connect.
- Enlist a developer to audit the code of these extensions and themes.
- Test new applications in development environment before deploying them to your live store.
- Before going live, create backups of your site files and databases as a failsafe against data corruption or security breaches.
Manage access points
There are many methods for accessing your site files and database. Depending on your intended task, you can access your site through SSH, FTP, or SiteWorx. Use a unique, strong password for each method, and use connection methods like SSH, SFTP, or SCP for additional security.
Restrict administrator access
In addition to two-factor authentication, you can restrict the Magento administrator login page to a specific IP address by configuring rules within your site’s .htaccess file.
Furthermore, every administrator should use a unique administrator account. Not only is this a PCI DSS requirement, but it allows for easier management and access control.
Secure your local.xml file and other sensitive files
The local.xml file holds your most critical database information, including your username, password, and table prefixes. Furthermore, attackers could alter the code dictating your caching methods, resulting in downtime for your store. As a means of prevention, restrict this file’s permissions to 600, or -rw——-. These permissions restrict read-and-write access to your user alone.
For added security, also restrict permissions on any other files containing sensitive information, such as login credentials.
Use encrypted connections (SSL/HTTPS)
Data sent over unencrypted connections is exceptionally vulnerable to interception by third parties. A properly implemented SSL certificate will help secure sensitive information such as credit card data, customer details, and login credentials, among other types. You can purchase an SSL certificate from any verified Certificate Authority and install it through SiteWorx. Once you have the SSL certificate, configure your Magento installation to require the secure resources on certain pages, forcing the pages to be loaded over HTTPS.
Use two-factor authentication
Do not rely solely on passwords. Two-factor authentication serves as the new standard for security and will mitigate most password-related Magento security risks. Though you can find many options, we recommend Sentry, our free and open source plug-in designed specifically for Magento.
Coming soon: best practices for Magento 2, which we now support!