カテゴリ | セキュリティ・スパム・悪戯対策 |
---|---|
サマリ | refプラグインが閲覧制限を考慮していない |
バージョン | 1.5.4 |
投稿者 | N |
状態 | 完了 |
投稿日 | 2022-04-12 (火) 18:12:22 |
再現手順1
期待する結果1
画像は表示されず、ログイン画面に遷移する。
実際の結果1
画像が表示されてしまう。
再現手順2
期待する結果2
画像は表示されない。
実際の結果2
画像が表示されてしまう。
問題点
ページ名と画像ファイル名さえ分かってしまうと、閲覧制限のかかったページのコンテンツ(の一部)に誰でもアクセスできてしまう。
調べたこと
質問箱を「ref リンク」で検索しましたが、類似の質問は見つけられませんでした。
Q&A配下ページとFAQページを「ref」で文字列検索しましたが、有用な情報は見つけられませんでした。
refプラグインで画像を表示すると、その画像は「src="./?plugin=ref&page=URLエンコードされたページ名&src=画像ファイル名"というimgタグ」としてHTML出力されるようです。
refプラグインのマニュアルによるとコマンド型には分類されていませんが、実際はコマンド型として使用可能なようです。
一方、当該ページの「添付一覧」で表示される画像ファイルのリンク文字列は「https://.../?plugin=attach&pcmd=open&file=画像ファイル名&refer=URLエンコードされたページ名」となっており、こちらはプライベートモードのブラウザでアクセスするとログイン画面に遷移しました。
このことから、attachプラグインでは行われているであろう、閲覧制限に関するチェックがrefプラグインでは行われていないのかな、と考えて、ref.inc.phpとattach.inc.phpを見比べた所、attach.inc.phpにはcheck_readableという関数がありました。
ただ、check_readable関数をref.inc.phpに付け加えることで期待する動作にできるのか、また、どの様な引数を与えてどこに付け加えたらよいのか分かりませんでした。
聞きたいこと