質問 > その他 > SC_CheckError の createParam に渡す値 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
pineray |
投稿日時: 2013/6/27 20:03
対応状況: −−−
|
長老 登録日: 2006/9/9 居住地: 伊賀 投稿: 292 |
SC_CheckError の createParam に渡す値 SC_CheckError で、例えば NUM_CHECK 関数だと、以下のように $value を createParam 関数へ渡しています。
NUM_CHECK 関数の場合、$value[0] が表示名、$value[1] が項目名、$value[2] が値となっています。 createParam 関数では $value[0] 以外をチェックするため、項目名もチェックの対象となってしまっています。 createParam 関数では値だけをチェックすれば良くて、項目名のチェックは不要かと思うのですが、いかがでしょうか?
|
pineray |
投稿日時: 2013/6/27 20:25
対応状況: −−−
|
長老 登録日: 2006/9/9 居住地: 伊賀 投稿: 292 |
Re: SC_CheckError の createParam に渡す値 あと、ちょっと横道にそれますが、createParam という関数名が実態にそぐわないですよね。
この関数名を使い続ける理由はあるのでしょうか?
|
pineray |
投稿日時: 2013/6/28 12:51
対応状況: −−−
|
長老 登録日: 2006/9/9 居住地: 伊賀 投稿: 292 |
Re: SC_CheckError の createParam に渡す値 ちなみにこれらは 2.12.5 での脆弱性対応によって変更された箇所です。
脆弱性に関する詳しい説明がないため、もしかしたら私が認識できていない理由があってのことかもしれないと思い、勝手に変更しちゃう前に質問した次第です。
|
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
|
pineray |
投稿日時: 2013/6/28 16:13
対応状況: −−−
|
長老 登録日: 2006/9/9 居住地: 伊賀 投稿: 292 |
Re: SC_CheckError の createParam に渡す値 引用:
なるほど。 であれば、今回の場合は関数名を変更するのではなく、新しい関数を作ってそちらを呼び出せばいいんじゃないか、と思いますね。 まあ、脆弱性対応で深く検討している余裕が無かったのかもしれませんが。
|
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 だとまずい部分がありそうですね。 たとえば、プラグインやカスタマイズ等で、
のようなパラメーターを追加した場合、 NUM_CHECKが掛かった際に、件のcreateParamが呼ばれ、 項目名の「test-id」がチェックに引っかかりシステムエラーになってしまいますね。 条件としては、
となっているので、項目名にハイフン(-)やドット(.)等、英数字とアンダースコア(_)以外を使用している場合に発現します。(パラメーターに定義しているチェックにもよりますが。) デフォルトの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 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |