Extensions
Joomla! CMS Joomla!の正しいURIってわかりますか? : Extensions
Joomla!のエクステンションで$_SERVER['REQUEST_URI']をそのまま使っているエクステンションを見かけたので問い合わせから連絡しておいた。私も恥ずかしいこといっぱいしているのでお構いなしです。![]()
なぜ、そのまま使ってはいけないのかは「REQUEST_URI クロスサイトスクリプティング」ででも検索したら出てくるので書きませんが、mod_QRcodeを作成時に自動でURLを作成できるようにしようと思ったのですが、断念した覚えがあります。Joomla!1.5では使えそうなメソッドが用意されていますが、1.0.xでは自分が開いているサイトのURIを知ることは非常に難しいです。(もちろん、スクリプト付きでも良いなら別ですよ。)Joomla!標準のエクステンションだけならやりようもあるでしょうが、サードパーティーのエクステンションをもカバーしようと思うとはっきり言って至難の業です。$_SERVER['REQUEST_URI']ってユーザーがリクエストしたそのままが得られるだけなのでスクリプトがくっついていようが、SQLインジェクションをねらったクエリが付いていようがおかまいなしです。
簡単な例:Joomla!1.5で例えば下記のようなURLが正しいURLとすると
http://demo.joomler.net/the-news/1-latest-news/86-example-go.html
以下だとどうでしょう・・・
http://demo.joomler.net/the-news/1-latest-news/9999999999999999999/86-example-go.html
のように異なるURLでも同じページにアクセスできてしまいます。この場合はクエリの間に数字を入れただけですが、このように正しいURLでは無くても該当ページにアクセスできます。
なので、そのREQUEST_URIを使ってブックマークなんてとんでもないですよね。
サニタイズしてクリーニングすればと思うかもしれない。でもそれが本当に、そのサイトの管理者が意図するJoomla!の正しいURIってわかりますか?(もちろん使っているエクステンションが限定されていればそれ相応にサニタイズできると思います。)
Joomla!1.5で用意されているメソッドを使っても上記の例のような場合はそのまま出力されてしまいます。
結果、mod_QRcodeでは、モジュールのコピーを可能にして個々にURLの指定をするようにしましたので外部のリクエストに左右されません。
私も気をつけようっと・・・。![]()































