Joomler!.net - Decided on Joomla!

Jboard is Multiple Board!

 

Archives

Blog

Demo

Home » Blog » intval
0 votes
Written by:Joomler! 16129 hits Friday, 14 November 2008 17:32

言われてみればその通り、関連記事モジュールには表示件数の制限が無いためたくさんヒットしたらそのまま表示されてしまいます。考えてみればこのサイトではそれだと見た目も悪くなるし、少し内容も表示したかったのでオリジナルの関連記事モジュールを作成したことを忘れていました。

とりあえず、表示件数の制限をつけることくらいは簡単なのでHackか、テンプレートでやっちゃえば簡単です。

まずは、Hackなら

$db->setQuery($query);

$db->setQuery($query, 0, 20);

のように、最初(0)から20個の記事というように20の部分に表示最大件数を入れます。自由に設定できるようにしたい場合は、

$db->setQuery($query, 0, intval($params->get('limit', 20)));

のようにし、xmlファイルのパラメータ部に

<param name="limit" type="text" size="3" label="最大件数" description="" />

などと追加すればバックエンドで最大件数が設定できるようになります。

ではテンプレート側でやるには

mod_related_items/tmpl/default.phpとindex.htmlを、使っているテンプレートフォルダ/html/mod_related_itemsにコピーします。そしてコピーしたdefault.phpを編集します。

<?php foreach ($list as $item) :	?>

<?php
$i = 0; 
foreach ($list as $item) :
 	if($i > 20){
 		break;
 	}
 	$i++;
 ?>

のようにすればOKです。

本体をHackする方法だとアップデート時に、忘れていたりしてかなり面倒になってきたりしますので、それを考慮にいれるとテンプレート側で対応する方法を行った方が良いかもしれません。

 
2 votes
Written by:Joomler! 9165 hits Wednesday, 22 October 2008 16:35

以前に紹介して実際にこのサイトでも使っているDS-Syndicateでセキュリティホールが公表されていました。私は、改造して使っていたりなのですが、そこまで見ていませんでした。

対応策

new_feed(mosGetParam( $_GET, 'feed_id', ""));

new_feed(intval( mosGetParam( $_GET, 'feed_id', "") ));

のように(他の方法でももちろん良い)数値にサニタイズすることで対処できます。

追記:さらにすでに攻撃されたかどうかは、Root/components/com_ds-syndicate/feedフォルダ内を見て下さい。そこに通常のファイルではなさそうなものがあればすでに攻撃されたものだと思われます。フォルダ内のファイルをすべて削除する必要があります。

念のためまだ10月の途中ですが、毎月行っているiLogScannerのスキャンを行ってみました。

joomler_net-2008-10_iLogScanner

22日現在の時点で104件の攻撃で幸い成功はしていないようです。
成功していないというのは厳密に言うと間違いです。この攻撃を使ってのインジェクション攻撃は成功しています。そしてデータベースのnameとpasswordは見る事ができたかもしれません。ですが、Joomla!は生のパスワードは保存していません。パスワードは、Joomla!の独自メソッドでハッシュ値に変更されたものなので生のパスワードを悟られる事はまずありえ無いでしょう。心配な方は、パスワードを変更してください。

ログを見てみるとDS-Syndicateに対する攻撃は、10月6日から来ています。公表されるずいぶん前の時点ですね。情報を素早く入手することももちろん大切ですが、エクステンションを導入するときには気軽に導入すべきではないことも事実のようです。また、たくさんの人が使っているから大丈夫ということも絶対言えませんし、あのサイトで紹介されているから大丈夫とも言えません。

 

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.