新機能を使っても対策済みソフトウェアは適用されません。上記 Web サイ
トからソフトウェアをダウンロードして実行してください。
との事です。
皆様お気を付けください。
======================================================================
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
各位
JPCERT-AT-2008-0012
JPCER/CC
2008-06-24
<<< JPCERT/CC Alert 2008-06-24 >>>
Adobe Acrobat 及び Adobe Reader の脆弱性に関する注意喚起
Vulnerability in Adobe Acrobat and Adobe Reader
http://www.jpcert.or.jp/at/2008/at080012.txt
I. 概要
PDF ファイル作成・変換ソフトウェア Adobe Acrobat および PDF ファイル
閲覧ソフトウェア Adobe Reader にはドキュメント中の JavaScript の処理に
関する脆弱性があります。結果として、遠隔の第三者は細工した PDF ファイ
ル等をユーザに開かせることで、Adobe Acrobat や Adobe Reader を不正終了
させたり、任意のコードを実行させたりする可能性があります。
Security Update available for Adobe Reader and Acrobat 8.1.2
http://www.adobe.com/support/security/bulletins/apsb08-15.html
Adobe Systems の情報によると、既に本脆弱性を狙った攻撃が確認されているとのこ
とです。
II. 対象
対象となる製品とバージョンは以下の通りです。
- Adobe Reader 8.0 から 8.1.2
- Adobe Reader 7.0.9 及びそれ以前のバージョン
- Adobe Acrobat Professional, 3D 及び Standard 8.0 から 8.1.2
- Adobe Acrobat Professional, 3D 及び Standard 7.0.9 及びそれ以前のバージョン
なお、 Adobe Reader 7.1.0 と Acrobat 7.1.0 はこの脆弱性の影響を受け
ません。
III. 対策
Adobe Systems より提供されている対策済みソフトウェアを適用してください。詳細
に関しては、Adobe Systems からの情報を参照してください。
--------------------------------------------------------------------
なお、2008/06/24 12:00 (JST) 現在 Adobe Reader のソフトウェア自動更
新機能を使っても対策済みソフトウェアは適用されません。上記 Web サイ
トからソフトウェアをダウンロードして実行してください。
--------------------------------------------------------------------
IV. 参考情報
なし
今回の件につきまして当方まで提供いただける情報がございましたら、ご連
絡ください。
======================================================================
JPCERT コーディネーションセンター (JPCERT/CC)
例えば Scale と, ScaleMin という2つのモデルは作成すべきでない。ScaleMin というモデル名に、Scale モデルの名称が包含されてしまうためである。
AkAssociatedActiveRecord.php(384L近辺)に以下のような記述がある。
「}elseif(preg_match('/^_('.join('|',$associated_ids).')_(.+)/',$column, $match)){」
上記コードはDB検索結果を、モデルの各オブジェクトに適切に変数を振り分けるための処理を行っているコードである。
Scale, ScaleMin という二つのモデルを例にすると次のようになる。SQLは正しく発行できているので、DBからは正しいデータが出力されている。しかし「ScaleMin」モデル用の変数を上記コードの箇所で「Scale」モデルに振り分けてしまう。
「Scale」モデル用の変数は正しく振り分けられるので、「Scale」モデルには「Scale」モデル用の変数と、「ScaleMin」モデル用の変数が両方割り当てられてしまう。
「"・・・php.exe" script\generate scaffold Scale_min --sintags」
「・・・\app\models\scale_min.php」 に 「ScaleMin」 というモデルが生成され、ScaleMin モデル は 「scale_mins」 というDBテーブルに対応付けられる事になる。
ScaleMin モデル が対応するテーブルを scale_mins ではない他のDBテーブル(ここでは scales とする)に対応付けるには、どうすれば良いのかソースを調べてみた。
AkActiveRecord クラスに 「$table_name」 というクラス変数が定義されているので、前記 $table_name に対応付けたいテーブル名 「scales」 を設定すれば良い。
以下のように、ScaleMin モデル内に「$table_name」を定義しておくと良いと思う。
class ScaleMin extends ActiveRecord
{
var $table_name = 'scales';
}
なぜこのような処理をする必要があったかと言うと、「ScaleMin」、「ScaleMax」という二つのモデルを作成するが、前記2つのモデルを対応付けるDBテーブルの内容は共通の内容であったためである。
「ScaleMin」、「ScaleMax」モデル毎に個々のDBテーブルを作成すれば上記のような処理をする必要はないがスマートではないので、モデルとDBテーブルの対応付けを変更する方法を知っていると何かと役に立つと思う。
最終的にはコードを以下のように記述した。(要点のみ記述)
(1)Scale関連モデル
class Scale extends ActiveRecord
{
var $table_name = 'scales';
}
class ScaleMin extends Scale
{
}
class ScaleMax extends Scale
{
}
(2)ScaleモデルのアソシエーションIDを持つモデル(ここでは「Image」)のテーブル構造
$this->createTable('images', "id, scale_min_id, scale_max_id ");
(3)その他
あと has_many, belong_to 変数の設定や検索時の include オプションなどは通常通り記述すれば良い。
コメントに記述してある通りの動作となった方が、ソースがすっきりと書けるので、次のコードを変更して、以下のコメント通りの動作となるようにした。
(1)変更箇所
date_helper.php(348L近辺) の _select_html 関数
(2)変更内容
・変更前: ($discard_type ? '' : $type).'"'.
・変更後: ($discard_type ? '' : "[$type]").'"'.
------- 以下は date_helper.php に記述されているコメント -------
* * :prefix - overwrites the default prefix of "date" used for the select names. So specifying "birthday" would give
* birthday[month] instead of date[month] if passed to the select_month method.
* * :include_blank - set to true if it should be possible to set an empty date.
* * :discard_type - set to true if you want to discard the type part of the select name. If set to true, the select_month
* method would use simply "date" (which can be overwritten using :prefix) instead of "date[month]".
































