Joomler!.net - Decided on Joomla!

デル株式会社

Jboard is Multiple Board!

Home » Blog » the-news
1 votes
Written by:Joomler! 3665 hits Thursday, 12 June 2008 16:56

Joomla!のエクステンションで$_SERVER['REQUEST_URI']をそのまま使っているエクステンションを見かけたので問い合わせから連絡しておいた。私も恥ずかしいこといっぱいしているのでお構いなしです。Thinking

なぜ、そのまま使ってはいけないのかは「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の指定をするようにしましたので外部のリクエストに左右されません。

私も気をつけようっと・・・。Party

 
0 votes
Written by:Joomler! 4224 hits Wednesday, 30 January 2008 16:24

Joomla!1.5では、英語タイトルなら自動でタイトルを付加したSEF-URLにしてくれるのですが、日本語だと番号だけになってしまいます。真偽は定かではありませんが、日本語でもURLエンコードされたものを使ったURLがSEFとして効果があるらしい。本当かどうかは知りません。

ちなみにどんなURLになるかというと

http://example.com/demo/the-news/1-latest-news/46-%E3%81
%95%E3%81%82%E3%81%A9%E3%81%86%E3%81%A7
%E3%81%97%E3%82%87%E3%81%86

とこんな風に長いURLになるわけです。ブラウザでそのリンクをポイントすると

jp_sef01.jpg

という風に見えます。

ということでまた、書き換えちゃいました。


 
0 votes
Written by:Joomler! 3415 hits Sunday, 27 January 2008 16:12

SEF、mod_rewrite、suffixをオンにするとJoomla!1.5では、1.0.xと異なり

http://demo.joomler.net/the-news/1-latest-news/
49-scribefire-test.html

などとかなりわかりやすいURLにしてくれます。1.0.xではここ80codeサーバーでは問題なく動作しています。ところが、1.5では簡単にはできませんでした。

RewriteBase /

をアンコメントしないと500エラーでこのサーバーでは動きません。それは、1.0.xでも同じです。が、1.5では一番上位の階層なら表示できますが2階層目以降は、404エラーとなってしまいます。対応策をかなり調べたつもりですが適当なドキュメントを見つけられませんでした。 どなたかご存じなら教えてください。

Hack

そこでへこたれず・・・コアを編集してしまいました。・・・5文字追加しただけです。今テスト中ですので大丈夫そうなら書きます。とりあえず表示する分には大丈夫なようです。

今度は日本語SEFをテストしてみるつもりです。

 

JContentPlus for Joomla!1.5 powered by Joomler!.net

joomler.net is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla!(R) name is used under a limited license from Open Source Matters in the United States and other countries.
joomler.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.