User Tools

Site Tools


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki