質問箱/5450

カテゴリセキュリティ・スパム・悪戯対策
サマリrefプラグインが閲覧制限を考慮していない
バージョン1.5.4
投稿者N
状態完了
投稿日2022-04-12 (火) 18:12:22

質問

再現手順1

  1. 閲覧制限をかけた任意のページに、画像ファイルを添付してrefプラグインで画像を表示させる。
  2. 上記のページにブラウザでアクセスし、表示されている画像を右クリックして「画像のリンク(アドレス)をコピー」する。
  3. プライベートモードでブラウザを起動してコピーした画像のURLにアクセスする。

期待する結果1

画像は表示されず、ログイン画面に遷移する。

実際の結果1

画像が表示されてしまう。

再現手順2

  1. 閲覧制限をかけた任意のページに、画像ファイルを添付する。
  2. 閲覧制限をかけていない任意のページに、refプラグインで上記の閲覧制限をかけたページの画像を表示させる。
  3. プライベートモードでブラウザを起動して閲覧制限をかけていないページにアクセスする。

期待する結果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に付け加えることで期待する動作にできるのか、また、どの様な引数を与えてどこに付け加えたらよいのか分かりませんでした。

聞きたいこと

  1. 閲覧制限をかけたページに添付した画像ファイルへの、refプラグインのコマンド型呼び出しによるアクセス時に、ログイン画面に遷移させられないでしょうか。
  2. 閲覧制限をかけたページに添付した画像ファイルを、別ページからのrefプラグインによる参照した際に、画像を非表示にできないでしょうか。

回答



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-04-13 (水) 12:15:08
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.489 sec.

OSDN