Zen Cartサイトのセキュリティ

あなたのZen Cartによるショップをセキュア(安全)にするためのステップ

  • 以下は、Zen Cartサイトのセキュリティを高めるための対策のリストです。

1. /zc_installフォルダを削除します。

  • インストールが完了したら、/zc_installフォルダをサーバーから削除します。
    単にフォルダ名を変えるだけではだめです。誰かが変更したフォルダ名を推測して、フォルダを見つけてしまう可能性があるからです。

2. configure.phpファイルをリードオンリーに設定します。

  • 2つのconfigure.phpファイルをCHMOD(パーミッション設定)でリードオンリー(read-only)にすることは重要です。一般的には「644」、または場合によっては「444」に設定するべきでしょう。
  • FTPソフトウェアによって変更することができないなら、Webのホスティング先が提供するファイル管理画面(File Manager)などを使ってください。Windowsサーバを使っているなら、単にファイルを"Read-Only"か"Everyone"に設定します。IISを使っているなら"IUSR_xxxxx user"に、Apacheを使っているなら"System"か"apache user"に設定します。

3.「/admin」フォルダに新しく名前をつけます。

  • クラッカーが管理画面にアクセスすることを難しくするように、「admin」フォルダに新しく名前をつけましょう。
  • 以下の変更を行う前に、ファイルとデータベースの現在のバックアップを取ってください。
  • [A] テキストエディタ(例:NotePad)を使って、admin/includes/configure.phpを開きます。/admin/のすべてのインスタンスを、を新しい「admin」フォルダ名に変更します。
    この部分を交換します:
define('DIR_WS_ADMIN', '/admin/');
define('DIR_WS_CATALOG', '/');
define('DIR_WS_HTTPS_ADMIN', '/admin/');
define('DIR_WS_HTTPS_CATALOG', '/');

そしてこの部分も変更します:

define('DIR_FS_ADMIN', '/home/mystore.com/www/public/admin/');
define('DIR_FS_CATALOG', '/home/mystore.com/www/public/');
  • [B] FTPソフトウェアまたはホスティング先の管理画面を使って、Zen Cartの/admin/ディレクトリを見つけます。admin/includes/configure.phpで変更した設定とマッチするように、ディレクトリに新しく名前をつけます。

4. 未使用のAdminアカウントはすべて削除します。

管理画面(Admin)−>追加設定・ツール(Tools)−>管理者の設定(Admin Stettings)
  • 管理画面で、「追加設定・ツール」メニューを開き、「管理者の設定」を選びます。未使用の管理者アカウントがあれば、それらを削除します。特に「Demo」アカウントが存在している場合には注意してください。

5. 管理者パスワードのセキュリティを高める。

  • クラッカーが容易にそれらを推察することができないように、複雑なパスワードを使いましょう。
  • 管理画面−>追加設定・ツール−>管理者で、「パスワードをリセット」をクリックするか、リサイクルシンボルのように見えるアイコンをクリックすることで行えます。(リセットを押しても、パスワード以外は消えません)
    少なくとも8字以上のパスワードを使うように勧めます。また、アルファベットと数字の混成(文字、数字、大文字と小文字を意図的に含めること)も有効です。

6."html_includes"の"define pages"コンテンツを保護する。

管理画面(Admin)->追加設定・ツール(Tools)->定番ページの編集(Define Pages Editor)
  • 「定番ページの編集」を終えた後には、それらを保護するべきです。
  • [A] FTPソフトウェアを使って、PCにそれらのコピーをダウンロードします。それらは/includes/languages/english/html_includesエリアに置かれます。
  • [B] それらのファイルのパーミッションをCHMODで644または444(またはWindowsサーバでは“read-only”)に設定します。CHMODについては上段の説明を参照してください。 それらは、/includes/languages/english/html_includesと、その配下にあるすべてのファイル/フォルダです。
    定番ページをリードオンリーにしておけば、クラッカーがそれらを編集することができません(彼らがパーミッション変更の権限を奪わない限り。そしてそれはより困難です)。
  • 注: もちろん、一度、リードオンリーに変更したら、「定番ページの編集」を再度行う前に「リード - ライト(read-write)」に変更し直す必要があることを忘れないでください。

7. 意図しないsnoopingを防止するために".htaccess"ファイルを使います。

  • いくつかのフォルダの中には.htaccessファイルがあり、これは、クラッカーが正確なファイル名を知っていない限りサイトの上のファイルをブラウズできないようにするためです。
    また、それらのいくつかはすべてのPHPスクリプトへのアクセス禁止("any" .PHP scripts)を設定してあります。なぜならそれらのPHPファイルは、他のPHPファイルから利用されるもので、ブラウザから直接アクセスされるものではないからです。これはセキュリティ的によい設定です。
    これらの.htaccessファイルを削除すると、あなたのサイトをsnooping(詮索)している人々に対してリスクを冒すことになります。
  • また、いくつかのフォルダの中に、いくつかの中身がほとんど空のindex.htmlファイルがあります。これらは、FTPソフトウェアが.htaccessファイルをアップロードしないであろう場合に、またはサーバの設定によりそれらが使えない場合に、あなたのサイトを保護するために置いてあります。
    これらはディレクトリ内のファイルを覗くことを防ぎ、PHPファイルの実行などを防止します。実際にはすべてのフォルダで.htaccessファイルを使うことがよりよい方法ですが、それができない場合などの代替方法になります。
  • index.htmlファイルがあり、まだ.htaccessファイルを置いていないフォルダに置くべき.htaccessファイルの内容は、以下のようなものにすべきでしょう(あなたのサーバの設定にもよりますが)。
#.htaccess to prevent unauthorized directory browsing or access to .php files 
   IndexIgnore */*
   <Files *.php>
    Order Deny,Allow
    Deny from all
   </Files>
  • あなたの使っているWebホスティングの仕様上、あなた自身による.htaccessファイルの設置や利用を許可しない場合にも、管理画面から.htaccessの設定を変更できる場合もあるようです。

最後に

  • ここまで説明してきたセキュリティ上重要な設定は、あなたが使っているホスティングサービスにより設定方法がいろいろ異なるはずです。個別の設定について助言はできませんが、このガイドラインを出発点として活用してください。