Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2006-08-27 10:06:53

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

media-tocu-dirs
media-tocu3.02をベースに改変したメディアのフォルダ管理を可能したmedia.php置き換え用ファイルです。

このファイルおよびmedia-tocの以前の版はログインしているユーザが他のユーザのメディアフォルダを操作できます。(ファイルのアップや既存ファイルの削除、リネームなど)
これは脆弱性ではなく仕様ですが、信頼できない不特定多数のユーザが使う環境ではお勧めできません。

将来のバージョンでは問題が解決されるかもしれませんが、現状では、
NP_ImageManagerがおすすめです(2007/1/13)
誤使用を避けるため、media-tocu-dirsの配布は中止しています。
私はこの先、このファイルについてはアップデートしないと思いますので、後は興味のある方にお譲りいたします。

※完全な代用になりうるNP_ImageManagerを下記にアップしましたので、お試しください。
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=2670">viewtopic.php?t=2670</a><!-- l -->
(要ログイン)

コアのmedia.phpに対するmedia-tocuの優位性
・投稿時にサムネイル作成
・ファイル名変更
・ファイル削除
・ファイルサイズ、タイプ確認
・確認表示

などですが、media-tocu-dirsではこれらに加え、ユーザのディレクトリ内にフォルダを作ることができます。多階層可。
・フォルダ作成
・フォルダ削除(フォルダにデータが入っている場合は削除しません。フォルダ内のメディアを削除してからフォルダ削除を行ってください(誤削除を防ぐため、一括削除は搭載していません))
・フォルダ間のメディアの移動はファイル名変更で行うことができるはず。

添付したファイルはUTF-8で作成してありますEUC-JPの方は保存しなおしてください。

β版です。まずはテスト環境で動作確認を行うことをお勧めします。

※ magic.quote.gpc = on の方は、undoMagic($POST['hoge'])みたいな修正をかけてください。

バージョン
1.0 β nucleus3.23UTF-8環境では動作良好です。
1.0.1 ユーザディレクトリしかない場合の対処を追加
1.0.2 ファイル移動時にNULLコードでファイル名を偽装できる問題を修正
1.0.3 メンバーディレクトリへのアップロード処理を修正

オフライン

#2 2006-08-31 15:50:02

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

試してみました。以下、気付いた点です。テスト環境(nucleus3.23UTF-8 )にて確認。
(一部、自分自身が使い方を分かっていないような気もしますが)

「現在のコレクション」つまりディレクトリを選択するリストボックスが
表示されません。リストボックスだけでなく、「フィルター~フィルター適応」の上に
あるハズの「現在のコレクション」のUIがまるごと表示されていません。

あと、フォルダ作成・フォルダ削除に関するインターフェイスが見当たりませんでした。
ファイル名にスラッシュを含めて名前変更かな?とも思いましたが、これだと
「xxxxxの名前変更に失敗しました」というエラーが表示されました。

オフライン

#3 2006-08-31 16:04:05

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

ぬっ、そうでしたか。

ちょっとアップしてあるファイルを確認してみます。

私の環境では、セレクトボックス アップロード先 フォルダ管理 という順番にボタンが出ます。

オフライン

#4 2006-08-31 16:09:51

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

よろしくお願いします。ちなみに、下の画像のような状態になっています。


Attachments:
jpg nuc01.jpg, Size: 22.96 KiB, Downloads: 26,951

オフライン

#5 2006-08-31 19:29:15

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

多分、yamaさんがインストールしているのは別のファイルだと思います。

というのは日本語表示で、「新規アップロード」というのはファイルに含まれていないはずなので。


Attachments:
gif mediagamen.gif, Size: 10.42 KiB, Downloads: 26,880
png media.png, Size: 61.31 KiB, Downloads: 26,859

オフライン

#6 2006-08-31 19:55:24

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

「 <?php echo htmlspecialchars(_MEDIA_UPLOAD_NEW) ?> 」で呼び出しているのが
Nucleus本体langファイルの「新規アップロード」という文字列のようですが、これは関係ないでしょうか。

念のため再度media-tocu-dirsをダウンロードし上書きしてみましたが、状況は同様でした。
さらに念を入れて、アップロードしたmedia.phpを「000media.php」などにリネームすると
404 Not Foundとなりました。さらにこの000media.phpをダウンロードしエディタで開くと
「T.Kosugi edit 2006.8.22 for security reason」のシグネイチャが確認できます。
と、わりと念入りに確認してみたつもりですが、まだ何か大きな見逃しがあるかも。
(最近多いので…汗)

これを確認してほしい、などあればおっしゃってください。試してみます。

オフライン

#7 2006-08-31 20:57:29

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

おっと、LANGファイルとは見逃していました。
なんで違いが出るんでしょうね・・・
シグネチャは

/**
  *	media-tocu3.02.zip
  * T.Kosugi edit 2006.8.22 for security reason
  */
/**
  *	media-tocu-dirs1.0.zip
  *		extends media-tocu3.02.zip
  */

ですよね?で
ソースはどうなっていますでしょうか?

XHTMLstrictに引っかかってレンダリングされないとかかなと。

オフライン

#8 2006-08-31 21:17:18

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

もう一つ、今の段階の推測ですが、

文字コード、どうなっていますか?UTF-8環境だとは思うのですが、mb_internal_encoding()の値。

このファイル、日本語直書きで条件分岐しているので(爆)

あと、magic.quote.gpcはoffですよね?

オフライン

#9 2006-09-01 09:02:50

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

表示されるポップアップウィンドウのHTMLソースは以下のようになってました。
冒頭から該当部分あたりまでを貼り付けます。

	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Nucleus Media</title>
		<link rel="stylesheet" type="text/css" href="styles/popups.css" />
		<script type="text/javascript">
			var type = 0;
			function setType(val) { type = val; }

			function chooseImage(collection, filename, width, height) {
				window.opener.focus();
				window.opener.includeImage(collection,
										   filename,
				                           type == 0 ? 'inline' : 'popup',
				                           width,
				                           height
				                           );
				window.close();
			}

			function chooseOther(collection, filename) {
				window.opener.focus();
				window.opener.includeOtherMedia(collection, filename);
				window.close();

			}
		</script>

	        <script type='text/javascript'>
                  function kakunin(value){
                     res=confirm('本当に'+value+'していいですか?');
                     return res;
                  }
	        </script>
	</head>
	<body>
		<form method="post" action="media.php" style="float:right"><div>
			<input type="hidden" name="collection" value="1" />
			<input type="submit" name="action" value="新規アップロード..." title="新しいファイルのアップロード" />
			<input type="hidden" name="ticket" value="083a709072656aa48e9c345bda4c121f" />		</div></form>
			<form method="post" action="media.php"><div>
			<label for="media_filter">フィルター: </label>
			<input id="media_filter" type="text" name="filter" value="" />
			<input type="submit" name="action" value="フィルター適応" />
			<input type="hidden" name="collection" value="1" />
			<input type="hidden" name="offset" value="0" />
		</div></form>

media.phpのシグネチャ部分は以下のようになってます。同一でしょうね。

/**2005.3--2005.09.26 00:50 keiei edit
  * media-tocu3.01.zip  for register_globals=off
  *
  */
/**
  *	media-tocu3.02.zip
  * T.Kosugi edit 2006.8.22 for security reason
  */
/**
  *	media-tocu-dirs1.0.zip
  *		extends media-tocu3.02.zip
  */

mb_internal_encoding()の値は、phpinfoで見たところUTF-8となってました。
magic.quote.gpcはoff。これも大丈夫でした。

なんかの勘違いでmedia.phpファイルをサーバ上で間違えてるのかなと思い
「<input id="media_filter" type="text"…」などの直前あたりに「あいうえお」と
試しに書いてみると、やっぱり該当部分に「あいうえお」が表示されます。
いつもそそっかしいことしてるので自分を信用できてませんが(笑)、
今回はファイルを間違えてはなさそうです。

オフライン

#10 2006-09-01 09:12:33

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

分かりました!

「1」や「2」などの「ユーザ用ディレクトリ」しかない場合はディレクトリ関係のUIが
表示されないみたいですね。
「test」というディレクトリをFTPで作ってみたらUI表示されました。

オフライン

#11 2006-09-01 09:13:06

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

うーん。
やっぱり、最初から書き直した方がいいかなぁ。。。

ぬ。

yamaさん、最高です!
うちだと、NP_Analyzeのフォルダやらなにやらあったので気付きませんでした。
修正版すぐに作れそうなので、飯食ったらアップします。

オフライン

#12 2006-09-01 09:44:32

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

修正版アップしました。

magic.quote.gpc = on でも使えるようにしたほうがいいんだろうか・・・

オフライン

#13 2006-09-01 10:08:41

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

どもです。さっそく試してみました。グーでした。:)

magic_quotes_gpcの件は、もしonになっている場合はoffにするように
アラートを赤文字などで表示してサーバ設定を促すというのはどうでしょう。
magic_quotes_gpcとだけ書いておけばあとはGoogleなどで調べられます。

Nucleusは php.iniやら.htaccessやらをいじらなくてもそこそこ使えるのが
親切で便利と思ってましたが、おかげさまで少し考えを改めるようになりました。

オフライン

#14 2006-09-01 10:14:39

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

いつもありがとうございます。

私としては、
magic_quotes_gpcはonを推奨したいのです。(別な理由で)

たまたま、このファイルの場合、私がオリジナルじゃないので、magic_quotes_gpc = on対応にすると、書き換え場所が結構大量になってしまうので、そのままアップしてますが、自分用はgrepして書き換えているんです。実は。 8)

オフライン

#15 2006-09-10 14:49:51

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

報告です。今度はたぶんサーバ側の問題とからんでます。

画像をアップロードしようとすると、

エラー
このアクションの実行が許可されていません

と表示されアップロードできません。

サーバはxreaです。セーフモード稼働の関係でmedia.phpを利用するには
ちょっとした細工が必要とされており、そのようにしています。
media-tocu3.02までは利用できていました。
試しにmedia-tocu3.02に戻してみると、正常にアップロードできます。

http://sakurafarm.happy.nu/item_1371.html
詳細はこちら。(サクラキャンドルさんのサイトです)

オフライン

#16 2006-09-10 15:32:39

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

media-tocu3.02で動作しているということで、違いを確認してみたいと思います。

CGIとして動作させているということだと思いますが、
SUEXECも利いている状態でしょうか?


余談ですが、うちはCGIではないですが、セーフモードの影響で、
media.phpの所有者権限と、書き込もうとするディレクトリの所有者権限がマッチしないため、アクセスを拒否されるというものです。phpの仕様では、safe_mode_include_dirが正しく設定されていれば、ファイル書き込み時のuidチェックは透過するはずなのですが、私のPHP-4.4.4ではuidチェックが発動するようです。

safe_mode_include_dirの値などが、気になるところですが・・・。

ケースによっては、プログラム側ではなくてサーバ側の設定を変えてもらう必要があるかもしれません。

オフライン

#17 2006-09-10 15:42:09

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

すみません。
追加情報をお願いいたします。

アップロードできないのは、メンバーIDの直下もでしょうか?
それとも、その下に作成したディレクトリだけでしょうか?

オフライン

#18 2006-09-10 15:43:19

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

http://xrea-memo.raccy.org/cgi_suexec.html
公式なアナウンスはないのですが、上記URLによるとxreaではSUEXECが有効になって
いる様子です。他のサイトでも数件ほど、そのように記述されているのを見ました。

safe_mode_include_dir は 「/usr/local/lib/php」 となっていました。


※追記 15:44
入れ違いの書き込みになっちゃいました。

> アップロードできないのは、メンバーIDの直下もでしょうか?
そうです。というか、直下のみでしか試してません。
ディレクトリを作れるかどうか、作れるならアップロードできるかどうか試してみます。

オフライン

#19 2006-09-10 15:54:47

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

あぁ、すみません。
その前に、今アップされているファイル、最新じゃなかったです。
私が使っているのより2バージョン古かった・・・

緊急性がなかったので更新してませんでした。

オフライン

#20 2006-09-10 16:06:21

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

あれっ?その古いというバージョンも、こないだのディレクトリ存在対応版より新しくなってますか?
わわわ、差し替えて試してみます。汗

オフライン

#21 2006-09-10 16:13:10

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

アップロードできるようになりました!

オフライン

#22 2006-09-10 16:27:59

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

yama.kyms さんの発言:

アップロードできるようになりました!

ほっとしました。

手元で使っているものの方が合理的な仕様になってきているのですが、
どうも動作確認がとれないので、悩み中です。
php-4.4.4にしてから、どうもsafe_modeが厳しくなったというかなんというか・・・
CGI実行にした方が安全かつシンプルかも。スピードも遜色なくなったと言われていますし。
safe_mode_include_dirもCGI環境なら必要ないから、あぁいう設定なんだ・・・。

CGI実行で、SUEXEC有効なら、セキュリティをもう少し強化できます。
mediaディレクトリのパーミッションは700にします。
MEDIA.phpも書き換えてしまうとよいかもしれません。

オフライン

#23 2006-09-12 08:16:32

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

mediaディレクトリ700にしてみました。問題なく稼働してます。

話は変わりますが。ファイル名をクリックして画像を貼り付けるようになってますが、
サムネイルをクリックしても同じように画像を貼り付けられると便利だと思います。
知り合いやお客さんに使い方を説明する時、たいてい画像のほうをクリックしようと
するので、そういえばと思いました。自分はオリジナルのmedia.phpで慣れてたので
思いもしませんでしたが。

オフライン

#24 2006-09-19 00:31:36

yama
Administrator
登録日: 2005-07-07
投稿: 1,277
ウェブサイト

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

すいません、報告が遅くなりましたが。mediaディレクトリを700にすると画像が表示されませんでした。
SUEXEC有効のはずなのに、xreaのサーバ特有の現象かもしれませんが。
というわけで、とりあえず701で運用してます。701ってあまり聞かないですね。

オフライン

#25 2006-09-19 09:12:37

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: media-toc改変版 ->mediaディレクトリでフォルダ作成

あぁ、いえ、私の勘違いです。

イメージファイルを見に来るのは、普通のapacheプロセスなので、PHPの実行権限とは関係ないですね。
なので、701が正解です。

オフライン

Board footer