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 2003-04-24 (木) 21:42:27
  • とりあえず修正案その一。
    if(basename($_SERVER['REQUEST_URI']) == basename(__FILE__))
    	exit;
    これをskinの先頭に書いておく、こんな感じでどうでしょうか? -- ishii 2003-04-24 (木) 21:58:35
  • うまくいくようですね。ということで、各スキンの先頭に次の1行を。 -- reimy 2003-04-25 (金) 01:03:43
    <?php if(basename($_SERVER['REQUEST_URI']) == basename(__FILE__)) exit; ?>
    • 1.3.4 ではどう書くのが正解でしょう? -- MorphyWiki 2003-04-25 (金) 03:44:52
  • REQUEST_URI だと最初の例が動いちゃいますよ。SCRIPT_NAME を使った方が良いでしょう。 -- masao 2003-04-25 (金) 04:30:05
    • ふむふむ。早速、書き換えた。うちの場合、httpのときとhttpsのときでSCRIPT_NAMEが異なるのでちょっと工夫が必要だったけど。配布するスキンではどう書いとけばいいかなあ… -- reimy 2003-04-25 (金) 05:33:10
  • サーバ変数や環境変数は(文字通り)環境によって違ってくる可能性があるので…。確実なのは
    if (!defined('DATA_DIR')) { exit; }
    だと思います。pukiwiki.php(→pukiwiki.ini.php)を経由しないとDATA_DIRは定義されません。(たぶん) -- ぱんだ 2003-04-25 (金) 09:59:38
    <?php if (!defined('DATA_DIR')) { exit; } ?>
    • 1.3.4 でも有効なことを確認しました。 -- MorphyWiki 2003-04-25 (金) 10:33:47
  • cvsに投入しました。 -- ぱんだ 2003-04-25 (金) 11:33:44
  • お手数ですが、1.4系の skin/keitai.skin.ja.php の修正もお願いします。 -- masao 2003-04-25 (金) 15:57:48

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2003-04-25 (金) 16:46:33
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.351 sec.

OSDN