バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > SC_Utils::sfIsInt()が不適切に使用されています

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pantacle
投稿日時: 2010/9/6 21:13
対応状況: −−−
長老
登録日: 2009/6/29
居住地: 富山
投稿: 242
SC_Utils::sfIsInt()が不適切に使用されています
LC_Page_Admin_Order_Edit.php等でSC_Utils::sfIsInt()が不適切に使用されています。
[EC-CUBE] EC-CUBE ver.2.4.4 で検出したけどもっと前からの問題。

SC_Utils::sfIsInt()は、引数がINT_LEN(8)桁までの「数値」かを判定している関数なので、
これの仕様も正直どうかとは思いますが、
オーダーIDなど明らかに8桁以上になりうる値の判定にも使用されており、地雷になる可能性があります。

試験環境と本番環境を区別する為にオーダーIDを大きな数字にしておこう、とかするとハマります。
というかハマりましたので愚痴ついでに。

既出ならご容赦ください。

--
pantacle(元mahalo_c)
seasoft
投稿日時: 2010/9/6 22:07
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7332
Re: SC_Utils::sfIsInt()が不適切に使用されています
私も以前に気になりまして、コミュニティ版ではコメントを付けてあります。
http://svn.ec-cube.net/open_trac/changeset/18273

INT_LEN の定義が由来なので、バグとも言い切れないので、XXX 扱いですが。

# まぁ今では、金額以外は8桁上限が染み付きました。


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

pantacle
投稿日時: 2010/9/6 23:27
対応状況: −−−
長老
登録日: 2009/6/29
居住地: 富山
投稿: 242
Re: SC_Utils::sfIsInt()が不適切に使用されています
SC_Utils::sfIsInt()も問題で、関数名通りの処理して無いですよね。
実はis_numeric()で判定しているので、
関数名だけ見て整数でなければfalseが返ると思い込んじゃうと
ハマる。

本来なら、
整数かを判定する関数と
整数かつINT_LEN桁以内かを判定する関数の
2種類必要なのだと思います。

--
pantacle(元mahalo_c)
seasoft
投稿日時: 2010/9/6 23:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7332
Re: SC_Utils::sfIsInt()が不適切に使用されています
> SC_Utils::sfIsInt()も問題で、関数名通りの処理して無いですよね。

私も直感的に、そう感じました。
そのために、SC_Utils#sfIsInt にコメントをつけた次第です。

# まぁ、仕様書が無い状況では、何が「正」か分からないですが・・・


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

seasoft
投稿日時: 2010/9/11 17:49
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7332
Re: SC_Utils::sfIsInt()が不適切に使用されています
せっかくの問題提起がこのまま埋もれてしまうのはもったいないので、とりあえず既存チケットのコメントとして記載させていただきました。
http://svn.ec-cube.net/open_trac/ticket/651#comment:2

とりあえず、仕様としての白黒がハッキリすると良いなと考えています。


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

nanasess
投稿日時: 2010/9/11 22:06
対応状況: −−−
登録日: 2006/9/9
居住地: 大阪
投稿: 2088
Re: SC_Utils::sfIsInt()が不適切に使用されています
8桁と定めている理由もわかりませんし, is_numeric で十分だと思うので, 廃止してしまっても良いかと思ってます
AMUAMU
投稿日時: 2010/9/13 6:22
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: SC_Utils::sfIsInt()が不適切に使用されています
intチェックを始め各種入力値チェックは実行速度や安全性、将来のプラグインによる多様化時のセキュリティチェックを考えると、本当はFilter関数とかに移行出来るとベストな気がしますが、Filter関数はPHP5.2以降でしか利用出来ないので中々難しいですかね・・・

参考URL
http://www.php.net/manual/ja/book.filter.php


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

seasoft
投稿日時: 2010/9/13 7:02
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7332
Re: SC_Utils::sfIsInt()が不適切に使用されています
> intチェックを始め各種入力値チェックは実行速度や安全性、将来のプラグインによる多様化時のセキュリティチェックを考えると、本当はFilter関数とかに移行出来るとベストな気がしますが、Filter関数はPHP5.2以降でしか利用出来ないので中々難しいですかね・・・

個人的には、PHP4 とか 5.1 とか、切っちゃえ! という勢いですが、プロジェクトとしては、なかなかそうもいかないようですね・・・

しかし、将来的に移行しやすいように、モジュールの機能・粒度を参考にする等は、今でも出来そうですね。


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

pantacle
投稿日時: 2010/9/13 9:16
対応状況: −−−
長老
登録日: 2009/6/29
居住地: 富山
投稿: 242
Re: SC_Utils::sfIsInt()が不適切に使用されています
> 個人的には、PHP4 とか 5.1 とか、切っちゃえ! という勢いですが、プロジェクトとしては、なかなかそうもいかないようですね・・・

PHP4は流石に切っても良いでしょう。
どうしてもPHP4の人には現行の2.4系を使って貰えば良い話ですし。

かつてのApacheを見習って土台から見直した、PHP5対応のEC-CUBE3というのは魅力的....


----------------
pantacle
http://pantacle.net/

AMUAMU
投稿日時: 2010/9/13 9:19
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: SC_Utils::sfIsInt()が不適切に使用されています
MySQL4.x系の切り捨てはしたわけですしね・・・

株式会社ロックオン社の立場的に考えると、ホスティングパートナーにPHP4.x系使ってる所が無いなら思いきって・・・と思うのですが
※いたら厳しそう


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

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


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,347名です
総投稿数は97,197件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2478
4
nanasess
2088
5
umebius
1649
6
yuh
1612
7
red
1410
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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