skinファイルが実行できてしまう†
- ページ: BugTrack
- 投稿者: reimy
- 優先順位: 緊急
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2003-04-24 (木) 19:24:59
- バージョン:
メッセージ†
http://pukiwiki.sourceforge.jp/dev/skin/pukiwiki.skin.ja.php
途中でエラーにはなるけど。
official:雑談/4参照。
- コメントにある通り、register_globalsの設定によっては、XSSの問題になりえますね([[例:http://pukiwiki.sourceforge.jp/dev/skin/pukiwiki.skin.ja.php?page=<s>test</s>]])。とりあえず「緊急」にしておきます。 -- masao
- とりあえず修正案その一。
if(basename($_SERVER['REQUEST_URI']) == basename(__FILE__))
exit;
これをskinの先頭に書いておく、こんな感じでどうでしょうか? -- ishii
- うまくいくようですね。ということで、各スキンの先頭に次の1行を。 -- reimy
<?php if(basename($_SERVER['REQUEST_URI']) == basename(__FILE__)) exit; ?>
- REQUEST_URI だと最初の例が動いちゃいますよ。SCRIPT_NAME を使った方が良いでしょう。 -- masao
- ふむふむ。早速、書き換えた。うちの場合、httpのときとhttpsのときでSCRIPT_NAMEが異なるのでちょっと工夫が必要だったけど。配布するスキンではどう書いとけばいいかなあ… -- reimy
- サーバ変数や環境変数は(文字通り)環境によって違ってくる可能性があるので…。確実なのは
if (!defined('DATA_DIR')) { exit; }
だと思います。pukiwiki.php(→pukiwiki.ini.php)を経由しないとDATA_DIRは定義されません。(たぶん) -- ぱんだ
<?php if (!defined('DATA_DIR')) { exit; } ?>
- cvsに投入しました。 -- ぱんだ
- お手数ですが、1.4系の skin/keitai.skin.ja.php の修正もお願いします。 -- masao