Ticket #1657 (new バグ指摘)

Opened 8 years ago

Last modified 6 years ago

SC_Query の各種メソッドでプレースホルダの数に誤りがあってもエラーとして検出されない

Reported by: Seasoft Owned by: somebody
Priority: Milestone: バックログ
Component: その他 Version: 2.12.0 α
Keywords: Cc:
修正済み: no

Description (last modified by Seasoft) (diff)

  • 実装誤りに気づけないリスク
  • 脆弱性へつながるリスク

しかも、メモリリークを伴う → #1658


MDB2#bindValue に検出するロジックがあった。しかし、MDB2_ERROR_NOT_FOUND とし、黙殺している模様。

このロジックを活かすには、MDB2 に手を加える必要がありそう。(実際には、MDB2 を直接書き換えるのは避けるべきで、ラッパークラスを作るのが妥当と考える。多分、MDB2_Driver_Common#raiseError の $userinfo を評価する方法で対応できる。)


細かい部分に言及すると、(EC-CUBE の現実装では使っていないと思うが) 名前つきプレースホルダーの場合、定義した要素を実際には利用しない実装手法もありそう。

よって、エラー検出するのは、数値添字配列に限定する方が親切かも。

これも、上述の MDB2_Driver_Common#raiseError の $userinfo を評価する方法で、何とかなるかも。

Change History

comment:1 Changed 8 years ago by Seasoft

  • Summary changed from objQuery の各種メソッドでプレースホルダの数に誤りがあってもエラーとして検出されない to SC_Query の各種メソッドでプレースホルダの数に誤りがあってもエラーとして検出されない

comment:2 Changed 8 years ago by Seasoft

  • Description modified (diff)

comment:3 Changed 8 years ago by Seasoft

  • Description modified (diff)

comment:4 Changed 8 years ago by adachi

  • Milestone changed from EC-CUBE2.12.2 to EC-CUBE 2.12.3

comment:5 Changed 8 years ago by kim

  • Milestone changed from EC-CUBE2.12.3 to EC-CUBE2.12.4

comment:6 follow-up: ↓ 7 Changed 7 years ago by kim

  • Priority changed from to

Seasoft様 優先度としては高い印象ですが、実際に実装する場合のイメージはありますでしょうか。

comment:7 in reply to: ↑ 6 Changed 7 years ago by Seasoft

  • Description modified (diff)

kim への返信

Seasoft様 優先度としては高い印象ですが、実際に実装する場合のイメージはありますでしょうか。

分析結果を説明に記載しました。

comment:8 Changed 7 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.13.0 to EC-CUBE 2.13.1

comment:9 Changed 7 years ago by m_uehara

  • Milestone changed from EC-CUBE 2.13.1 to EC-CUBE 2.13.2

comment:10 Changed 6 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.13.2 to EC-CUBE2.13.3

comment:11 Changed 6 years ago by kim

  • Milestone changed from EC-CUBE2.13.3 to バックログ

バックログへと移動させていただきます。

Note: See TracTickets for help on using tickets.