開発日記

cvs修正 -- henoheno

for v1.4 (一部v1.3)

  • BugTrack/586 - edit_form() に XSS 脆弱性 (完了)
    • cvs:init.php (v1.4:1.77, v1.3:1.20.2.13-1.20.2.14) 前作業+α
      • 既存のコードの整理: $get, $post, $vars の内容を一致させる様に努める
      • 入力チェックの追加: cmd=, plugin= に英数字 (/^[a-zA-Z][a-zA-Z0-9_]*$/) 以外の入力を許さない
    • cvs:html.php (v1.4:1.100)
      • edit_form() は、テキスト整形のルールを表示させるためのハイパーリンクについて cmd=edit であることを仮定している様であるのに、未チェックのまま $vars['cmd'] を出力していたため、これを cmd=edit 固定としました。
    • どちらの修正でもこの問題は回避できますが、回避であって解決ではありません。
    • 解決させるためのサニタイジングは出力の直前ですべきである、という原則?からすると、今後も本体が出力する部分なら本体側、プラグインが出力する部分ならプラグイン側で個別対応する、ということでよろしいですよね。
  • むむ、今になって BugTrack/570 に気づきました。結果的に back-out する形になってしまいましたね。
    • 現在 1.4.3 を運用されている方は、cvs-raw:html.php.diff?r1=1.99&r2=1.98 こちらを参考に、「cmd={$vars['cmd']}」とある部分を「cmd=edit」に戻すことでこの問題を回避する事が可能です。

for 1.3

  • error_reporting(E_ALL) にすると出てくる大量のWarningの処理
    • cvs:pukiwiki.php (v1.3:1.16.2.9)
    • cvs:func.php (v1.3:1.9.2.5)
    • cvs:html.php (v1.3:1.45.2.9)
    • cvs:pukiwiki.ini.php (v1.3:1.16.2.6)
    • cvs:init.php (v1.3:1.20.2.18)
      • LANG_FILEの中身をINI_FILE(pukiwiki.ini.php)の中で呼び出しているのに、LANGがINI_FILEの中で定義されているという事に気付いたため、1.4を参考に、LANGおよびLANG_FILEの定義をini.phpに移動しました。

検討のみ

  • BugTrack/147 requireのパスチェックを修正してほしい(pukiwiki.phpと他のファイルの分離)
    • もう少しといった所ですね :)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-06-28 (月) 21:31:17
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.195 sec.

OSDN