Ticket #1657 (new バグ指摘)
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 9 years ago by Seasoft
- Summary changed from objQuery の各種メソッドでプレースホルダの数に誤りがあってもエラーとして検出されない to SC_Query の各種メソッドでプレースホルダの数に誤りがあってもエラーとして検出されない
comment:6 follow-up: ↓ 7 Changed 8 years ago by kim
- Priority changed from 中 to 高
Seasoft様 優先度としては高い印象ですが、実際に実装する場合のイメージはありますでしょうか。
comment:11 Changed 6 years ago by kim
- Milestone changed from EC-CUBE2.13.3 to バックログ
バックログへと移動させていただきます。
Note: See
TracTickets for help on using
tickets.