SOY CMS/Shopのファイルマネージャは以前は自家製のものを利用していましたが、

あるバージョンからelFinderというOSSに変更しました。


elFinder 2.1.x - file manager for web


ファイルマネージャは要求されることが多く、開発が非常に大変なので、

動作の良いものを探していましたところ、elFinderに遭遇して採用しています。


このelFinderはファイルの管理だけではなく、




画像のリサイズ、切り取りや回転といった編集も行うことができる。


更に拡張子毎にアップロードを禁止することもでき、

現時点では、phpやjsといったプログラムに関するファイルのアップロードを禁止しています。

CMSに不正にログインした後、何をする?




phpやjsファイルをSOY CMS内で管理したい方もいるかと思いますので、

elFinderでどのように設定しているか紹介します。


/CMSのインストールディレクトリ/soycms/js/elfinder/php/connector.php

を開き、ファイルの下の方で、


opts = array(
	// 'debug' => true,
	'roots' => array(
		array(
			'driver'        => 'LocalFileSystem',           // driver for accessing file system (REQUIRED)
			'path'          => $path,                 // path to files (REQUIRED)
			'URL'           => $url, // URL to files (REQUIRED)
			'uploadDeny'    => array('all'),                // All Mimetypes not allowed to upload
			'uploadAllow'   => array('image', 'text/plain', 'text/css', 'application/zip', 'application/epub+zip'),
			'uploadOrder'   => array('deny', 'allow'),      // allowed Mimetype `image` and `text/plain` only
			'accessControl' => 'access'                     // disable and hide dot starting files (OPTIONAL)
		)
	)
);

上記の様な設定に関する配列があります。

連想配列の中にuploadAllowという設定があり、ここでアップロードを許可するMIMEタイプを指定しています。


例えば、jsファイルを許可したい場合は、

MIMEタイプがtext/javascriptなので、


'uploadAllow' => array('image', 'text/plain', 'text/css', 'application/zip', 'application/epub+zip', 'text/javascript'),

この様に追加してみると、


追加する前は、



エラーで弾かれたが、

uploadAllowに追加後に再度試してみると、



無事、アップロードされました。

アップロード直後はアイコンが何故かtxtファイルになる。


このファイルにフォーカスをあて、右クリックしてみると、



編集も行える様になっています。


注意ですが、

管理画面でスクリプトの編集になるということは、

不正ログイン後に悪意のコードを書かれる可能性がありますので、

その点はご了承頂いた上で変更を行ってください。