バージョン選択

フォーラム

メニュー

オンライン状況

76 人のユーザが現在オンラインです。 (64 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 76
もっと...

サイト内検索

質問 > その他 > SC_CheckError の createParam に渡す値

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pineray
投稿日時: 2013/6/27 20:03
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
SC_CheckError の createParam に渡す値
SC_CheckError で、例えば NUM_CHECK 関数だと、以下のように $value を createParam 関数へ渡しています。
$this->createParam($value);

NUM_CHECK 関数の場合、$value[0] が表示名、$value[1] が項目名、$value[2] が値となっています。
createParam 関数では $value[0] 以外をチェックするため、項目名もチェックの対象となってしまっています。

createParam 関数では値だけをチェックすれば良くて、項目名のチェックは不要かと思うのですが、いかがでしょうか?


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

pineray
投稿日時: 2013/6/27 20:25
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: SC_CheckError の createParam に渡す値
あと、ちょっと横道にそれますが、createParam という関数名が実態にそぐわないですよね。
この関数名を使い続ける理由はあるのでしょうか?


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

pineray
投稿日時: 2013/6/28 12:51
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: SC_CheckError の createParam に渡す値
ちなみにこれらは 2.12.5 での脆弱性対応によって変更された箇所です。
脆弱性に関する詳しい説明がないため、もしかしたら私が認識できていない理由があってのことかもしれないと思い、勝手に変更しちゃう前に質問した次第です。


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

seasoft
投稿日時: 2013/6/28 15:54
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: SC_CheckError の createParam に渡す値
> この関数名を使い続ける理由はあるのでしょうか?

たしか、プロジェクトの基本方針として、マイナーアップでは関数名を変更しない運用だったと思います。

ちなみに、時期メジャーアップとなる 2.13.0 は、仕様が FIX していますが、「バグ(不具合修正)」ならば引き続き受け入れる (他は個別協議) という方針のようです。
http://svn.ec-cube.net/open_trac/roadmap


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

pineray
投稿日時: 2013/6/28 16:13
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: SC_CheckError の createParam に渡す値
引用:

seasoftさんは書きました:
> この関数名を使い続ける理由はあるのでしょうか?

たしか、プロジェクトの基本方針として、マイナーアップでは関数名を変更しない運用だったと思います。

なるほど。
であれば、今回の場合は関数名を変更するのではなく、新しい関数を作ってそちらを呼び出せばいいんじゃないか、と思いますね。
まあ、脆弱性対応で深く検討している余裕が無かったのかもしれませんが。


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

shutta
投稿日時: 2013/6/28 17:08
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: SC_CheckError の createParam に渡す値
今回の脆弱性対応の
http://svn.ec-cube.net/open_trac/changeset/22891/branches/version-2_12-dev/data/class/SC_CheckError.php
だとまずい部分がありそうですね。

たとえば、プラグインやカスタマイズ等で、

$objFormParam->addParam('テストID', 'test-id', INT_LEN, 'n', array('NUM_CHECK'));

のようなパラメーターを追加した場合、
NUM_CHECKが掛かった際に、件のcreateParamが呼ばれ、
項目名の「test-id」がチェックに引っかかりシステムエラーになってしまいますね。

条件としては、

preg_match('/^[a-z0-9_]+$/i', $key)

となっているので、項目名にハイフン(-)やドット(.)等、英数字とアンダースコア(_)以外を使用している場合に発現します。(パラメーターに定義しているチェックにもよりますが。)

デフォルトのEC-CUBEでは、問題となる項目名を使ったパラメータは無さそうですが、プラグインやカスタマイズしているサイト等で影響が出るところはありそうです。


----------------

リゾート会員権(エクシブ等)の売買・仲介

nanasess
投稿日時: 2013/6/28 18:48
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: SC_CheckError の createParam に渡す値
引用:

項目名にハイフン(-)やドット(.)等、英数字とアンダースコア(_)以外を使用している場合に発現します。


攻撃に対するリスクを下げるため、ハイフンやドットは許可してないのだと思います。
ハイフンやドットをパラメータに使用している場合は、アンダースコアに置換するなどの対応をした方が良いと思います。
shutta
投稿日時: 2013/6/28 19:41
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: SC_CheckError の createParam に渡す値
引用:

攻撃に対するリスクを下げるため、ハイフンやドットは許可してないのだと思います。


項目名に対してチェックするのであれば、何故ここ(createParam)でやろうとしているのかというのが、まず疑問に思います。
チェックの結果システムエラーにしてしまうのであれば、addParamの時点でチェックしてしまった方が良いような気がしますし。

あと、createParamを通さないCHECKメソッドがある点もよく分からないです。
今回でわざわざコメントアウトしたものがあるので、チェックをしたいのか、すり抜けさせたいのかが分かりにくく感じます。

コードは読むだけでは、どういう経緯・意図で改修しているのかが分からないので、そこらへんの情報が分かると嬉しいですね。


----------------

リゾート会員権(エクシブ等)の売買・仲介

nanasess
投稿日時: 2013/6/28 19:58
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: SC_CheckError の createParam に渡す値
引用:

コードは読むだけでは、どういう経緯・意図で改修しているのかが分からないので、そこらへんの情報が分かると嬉しいですね。


修正内容から脆弱性の内容を特定しにくいように、意図的にわかりにくくしているみたいですね。
shutta
投稿日時: 2013/6/28 20:05
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: SC_CheckError の createParam に渡す値
引用:

修正内容から脆弱性の内容を特定しにくいように、意図的にわかりにくくしているみたいですね。


となると、もうこの箇所はアンタッチャブルってことになっちゃいますかね。。。
そういうのも含めて情報を出してもらえると、オープンソースっぽいように思いますが、デリケートな問題なので難しいかもしれませんね。


----------------

リゾート会員権(エクシブ等)の売買・仲介

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,841名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.