Ausweb Web Hosting and Web Development Tutorials

banner-tutorials
You are here

Securing Your Zencart Store

SSL Security Protection Tips
Without applying extra efforts to your connection on the internet you are wandering around an unsecured environment. Before you make administrative modifications to secure Zen cart and its database, you need to equip yourself with secure ways to make these modifications. Otherwise if someone is watching / listing to the information you transmit, it might not be long before your private business information becomes public. The bare minimum tools you should have are a shared SSL and FTP over SSL/TLS. These tools will encrypt the information you transmit and receive.

The following is a list of several steps you can take to secure your Zen Cart site:

1. Delete the /zc_install folder
Once installation is complete, delete the /zc_install folder from the server. Don't simply rename the folder, as this leaves you vulnerable if someone were to discover this renamed folder.

2. Rename your "/admin" folder
It is recommended for additional security that you rename your admin directory after installation. This way, it will be significantly harder for hackers to find your admin area or attempt any attack on breaking into it.

(Before making the following changes, make sure to have a current backup of your files and your database.)

A - Open your admin/includes/configure.php, using a simple text editor like notepad. Change all instances of admin to your chosen new admin folder-name. For maximum security, you may want to consider that new folder name should include numbers and a combination of upper and lower case letters. The longer you make this folder's name the more secure it will be. Make sure you leave all the / intact.

Change this section:

define('DIR_WS_ADMIN', '/admin/');
define('DIR_WS_CATALOG', '/');
define('DIR_WS_HTTPS_ADMIN', '/admin/');
define('DIR_WS_HTTPS_CATALOG', '/');
And this section:
define('DIR_FS_ADMIN', '/home/mystore.com/www/public/admin/');
define('DIR_FS_CATALOG', '/home/mystore.com/www/public/');

B - Find your Zen Cart /admin/ directory, using your FTP software or your webhost File Manager. Rename the directory to match the settings you just made in step A.

C - To login to your admin system you will now have to visit a new URL that matches the new name used in steps A and B above. For example instead of visiting http://www.example.com/admin/ visit http://www.example.com/NeW_NamE4u/ Use of SSL is highly recommonded to protect your and your customers information. To protect the new admin folder name from packet sniffers, use https in the example link above (this of course depends on your server having an SSL certificate installed).

D - You should also protect your admin area by using a .htaccess file similar to the one shown below, and placing it into /admin/includes. (This should already exist in Zen Cart versions 1.2.7 and greater.)

3. Set configure.php files read-only
It's important that you CHMOD (set permissions) on the two configure.php files as read-only. Typically this means setting them to "644", or in some cases "444".

If you cannot do this with your FTP software, try using the File Manager supplied with your webhosting account.

If you're using a Windows server, simply set the file as "Read-Only" for "Everyone" and especially the IUSR_xxxxx (Internet Guest Account) user if running IIS, or the "System" account or "apache user" if running Apache.

4. Delete any unused Admin accounts
Admin->Tools->Admin Settings

In your admin area, open the Tools menu, and choose Admin Settings - Check for any unused admin accounts, and delete them. Especially the "Demo" account, if it exists.

5. Admin Password Security
It is wise to use complicated passwords so that a would-be hacker cannot easily guess them.

You can change your admin password in Admin->Tools->Admin Settings, and click on the "Reset Password" button, or click on the icon that looks like a recycle symbol.

We recommend that you use passwords that are at least 8 characters long.

Making them alpha-numeric (including letters, numbers, upper-and-lower-case, etc) helps too.

If you are going to use normal words it is a good idea to join together two normal words that don't normally go together.

6. Protect your "define pages" content in "html_includes"
After you have finished editing your define pages (Admin->Tools->Define Pages Editor), you should protect them:

A. Download a copy of them to your PC using your FTP software. They are located in the /includes/languages/english/html_includes area.

B. Make them CHMOD 644 (or "read-only" for Windows hosts). See notes above on CHMOD. /includes/languages/english/html_includes and all files/folders underneath

If you make them read-only, then a would-be hacker cannot edit them if they gain access to your system, unless they can get permissions to change the read-only status, which is more complicated.

NOTE: Of course, once you set them read-only, then you'll have to go and set them read-write before making additional changes using the define-pages editor.

7. Use .htaccess files to protect against unwanted snooping
In several folders, there are .htaccess files to prevent users from being able to browse through the files on your site unless they know exact filenames. Some also prevent access to "any" .PHP scripts, since it's expected that all PHP files in those folders will be accessed by other PHP files, and not by a browser directly. This is good for security. If you delete these files, you run the risk of leaving yourself open to people snooping around.

There are also some semi-"blank" index.html files in several folders. These files are there to protect you in case your FTP software won't upload .htaccess files, or your server won't accept them. These only prevent directory browsing, and do not stop execution of .PHP files. It's a good "alternative", although using .htaccess files in ALL of these folders is the better choice, for servers that accept them.

Suggested content for .htaccess files in folders where there is an index.html file but NOT yet an .htaccess file would be something like the following (depends on your server configuration):

#.htaccess to prevent unauthorized directory browsing or access to .php files IndexIgnore */*

Order Deny,Allow
Deny from all

If your webhost configuration doesn't allow you to create/use your own .htaccess files, sometimes they provide an interface in your hosting admin control panel where you can set the desired .htaccess settings.

It is recommended that you work with your host to configure these settings if this is the method they require. You need to choose -- and use -- the appropriate method for your server. As mentioned above, it's best to work with your web hosting company to select and implement the best method for your specific server. We can't tell you what to use for your specific server, but we offer these guidelines as a starting point.

8. Disable "Allow Guest To Tell A Friend" feature
You may wish to go to Admin->Email Options->Allow Guest To Tell A Friend and set the option to 'false'. This will prevent non-logged-in customers from using your server to send unwanted email messages.

9. Protect your "images" and other folders
During initial installation, you are advised to set your images folder to read/write, so that you can use the Admin interface to upload product/category images without having to use FTP for each one. Similar recommendations are made to other files for various reasons.

However, leaving the images (or ANY other) folder in read/write mode means that hackers "might" be able to put malicious files in this (or other) folder and thus create access points from which to attempt nasty exploits.

Thus, once your site is built and your images have been created/loaded, you should drop the security down from read/write to read. ie: change from CHMOD 777 down to 644.

File/Folder permissions settings
On Linux/Unix hosts, GENERALLY, permission-setting recommendations for basic security are: - folders/directories: 755 - files: 644

On Windows hosts, setting files read-only is usually sufficient. Should double-check that the Internet Guest Account has limited (read-only) access.

Folder Purposes
The folders for which installation suggests read-write access for setup are these. If your site supports .htaccess protection, then you should use it for these folders.

/cache
This is used to cache session and database information. The BEST security protection for this is to move it to a folder "above" the public_html/htdocs/www area, so that it's not accessible via a browser. (Requires changes to DIR_FS_SQL_CACHE setting in configure.php files as well as Admin->Configuration->Sessions->Session Write Directory)
/images
See other suggestions earlier.
/includes/languages/english/html_includes
See other suggestions earlier.
/media
This is only suggested read-write for the sake of being able to upload music-product media files via the admin. Could be done by FTP as an alternative. /pub
This is used on Linux/Unix hosts to have downloadable products made available to customers via a secure delivery method which doesn't disclose the 'real' location of files/data on your server (so that people can't share a URL and have their friends steal downloads from your site) /admin/backups
This is used by automated backup routines to store database-backups. Optional. /admin/images/graphs
This is used by the Admin->Tools->Banner Manager for updating/displaying bar-graphs related to banner usage. If not writable, feature is ignored.
Retrieved from "http://www.zen-cart.com/wiki/index.php/Important_Site_Security_Recommendations"

Articles In This Category
More from this Category
Tutorials > Website Security/Upgrade Issues
In addition to understanding the threats, and implementing general defensive strategies, it is important to know more specific details about security...
Tutorials > Website Security/Upgrade Issues
AUSWEBs new server security policies require PHP safe-mode ON and register global OFF Below you can find some guidelines regarding fixing your shoppin...
Tutorials > Website Security/Upgrade Issues
Vandals often use hacking techniques to deface a website or destroy data and files, but there are also those who just want to steal resources (make us...
Tutorials > Website Security/Upgrade Issues
If you've recently installed phpNuke with Fantistico (it's at the bottom of your Control Panel - if you haven't seen it - go look), you may have notic...
Tutorials > Website Security/Upgrade Issues
By Brian Prince Hackers have painted a bull's eye on Microsoft Word and Office programs yet again, and this time they seem to have hit their mark....
Related Articles
Related Articles
Plesk Tutorials > Plesk 10 - Tutorials
The following video tutorial will guide you through changing your FTP Account Credentials in Plesk10...
Plesk Tutorials > Plesk 10 - Tutorials
The following video tutorial will guide you through managing your DNS Zone in Plesk10...
Plesk Tutorials > Plesk 10 Reseller
The following video tutorial will guide you through changing your password & contact information in Plesk 10...
Plesk Tutorials > Plesk 10 Reseller
The following video tutorial will guide you through customizing your Panel Branding in Plesk10...
Virtual Server Tutorials > XEN VPS Tutorials
Once you login to your AUSWEB XEN VPS Control Panel you will see your XEN Virtual Server or Server(s) if you have multiple AUSWEB XEN VPS Ho...
Latest Articles
Latest Articles
Tutorials > Email Tutorial : FAQ for Email setup
This guide will help you configure your AUSWEB hosted email address with Outlook 2010....
Tutorials > Email Tutorial : FAQ for Email setup
This guide will help you setup and configure your AUSWEB hosted email address with Windows Live Mail (Outlook 2011)....
Tutorials > Partner (Affiliate) Guide
1. Visit http://partner.ausweb.com.au and click “Join Now” from the top navigation bar (or click the shiny green “Sign Up Now” button....
Tutorials > Website Security/Upgrade Issues
After installing an SSL, a commmon subsequent issue (in most modern browsers) is the the dreaded "Connection Partially Encrypted" warning.   The er...
Tutorials > Customer Testimonials
Now that you know about us, from us - this page is dedicated to what our customers think...
Most Read Articles
Most Read Articles
Tutorials > Joomla FAQ
A vulnerable extension is one that has been found to contain, or contribute to, a security vulnerability. Vulnerable extensions are not necessarily p...
Tutorials > phpBB Forum Hosting
Finally, after a long wait, phpBB3 has been released, and its relatively easy to upgrade your existing phpBB installation. phpBB3 introduces hundreds...
Tutorials > phpBB Forum Hosting
This video tutorial will show you how to create a new topic in phpBB3....
Tutorials > phpBB Forum Hosting
This video tutorial will show you how to set up a poll when starting a new topic in phpBB3...
Tutorials > phpBB Forum Hosting
phpBB3 is the latest update to the phpBB series, incorporating a plethora of new features, speed, stability and security improvements, and is much eas...