ja:rule:num:整数値のオーバーフローを検出_防止する
This is an old revision of the document!
整数値のオーバーフローを検出/防止する
PHPの整数型はCPU/OSによって異る
- 64 bit OS - 整数型は符号付き64bit整数 (ただし、Windowsは7.0未満は符号付き32bit整数)
- 32 bit OS - 整数型は符号付き32bit整数
浮動小数点型はIEEE754の倍精度浮動小数点型で符号付き53bit整数まで正確に表現できる。
厳密な整数型の利用が必要な場合は整数値のオーバーフローを検出、防止が必要となる。特に外部システムとデータをやり取りする場合に、データ型と範囲の違いに注意しなければならない。
ここではRDBMSのPostgreSQLを例として利用する。しかし、データ型を持つシステム(PHPを含む)の場合はオーバーフローする場合の取り扱いに注意しなければならない。非適合コード、適合コードは以下のテーブル定義を持つデータベースとする。
CREATE TABLE sample ( id SERIAL NOT NULL, expires INT, );
非適合コード例
適合コード例
[ルール/推奨事項に適合するコードおよびその解説。複数あって構わない。その場合、セクション名の後に“(適合パターン名)“を記述する。]
例外
[ルール/推奨事項の例外]
リスク評価
[ルール/推奨事項のリスク評価]
[評価例 - 英語表記に統一]
| Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
|---|---|---|---|---|---|
| IDS05-J | medium | unlikely | medium | P4 | L3 |
関連ガイドライン
参考文献
ja/rule/num/整数値のオーバーフローを検出_防止する.1458336924.txt.gz · Last modified: 2016/03/18 21:35 by yohgaki
