PHP 浮动错误:PHP 挂在数值上

2024-03-13

我刚刚读了一篇关于 php 挂在某些浮点数上的有趣文章,请参阅登记册 http://www.theregister.co.uk/2011/01/04/weird_php_dos_vuln/ and 探索二进制 http://www.exploringbinary.com/php-hangs-on-numeric-value-2-2250738585072011e-308/.

我从不明确使用浮动,我使用number_format()清理我的输入并显示例如价格。

另外,据我所知,来自例如表单的所有输入都是字符串,直到我告诉他们否则,所以我认为这个问题不会影响我。

我是对的吗,或者我是否需要检查我的服务器上的 WordPress 和 Squirrelmail 安装,看看它们是否将任何内容投射到浮动?或更好,grep我的服务器上的所有 php 文件float?


缓解问题的方法:

  1. 使用现代 CPU。大多数现代 64 位 CPU 都不会受到影响(实际上我很难找到允许重现它的主机,因为它们倾向于使用更现代的硬件)。亚马逊虚拟机似乎也能免疫。
  2. 升级您的 PHP 版本 - 5.3.5 和 5.2.17 一旦发布(可能是今天)就包含修复程序。
  3. 构建与-ffloat-store在 CFLAGS 中(会减慢代码速度)。
  4. 手动应用到您的代码并重建 PHP。

寻找有的代码float可能不会有帮助zend_strtod引擎在许多字符串->数字转换场景中使用。

附:顺便说一句,这段代码是标准 BSD 库strtod代码,不是 PHP 独有的。因此使用此代码的其他项目也可能会受到影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 浮动错误:PHP 挂在数值上 的相关文章

随机推荐