ホームページ  >  記事  >  バックエンド開発  >  php での Y2K38 脆弱性ソリューションの分析例、y2k38 分析例_PHP チュートリアル

php での Y2K38 脆弱性ソリューションの分析例、y2k38 分析例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:18:261047ブラウズ

phpでのY2K38脆弱性ソリューションの分析例、y2k38分析例

この記事では、PHP の Y2K38 脆弱性に対する解決策を例とともに分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

Y2K38 (Unix Millennium Bug としても知られています) この脆弱性は、すべての 32 ビット システムで時刻を記録するために UNIX タイムスタンプ整数を使用する PHP およびその他のプログラミング言語に影響します。

整数変数を保存できる最大時間は、2038 年 1 月 19 日 03:14:07 です。この時間を超えると、整数値はオーバーフローします。

1970 年 1 月 1 日から 2038 年 1 月 19 日火曜日 03:14:07 UTC まで、2^31 – 1 は 0x7FFFFFFF を超えました。多くのプログラマーがこれを目にしたことがあるでしょう。ビット システムでは、これは最大の符号付き整数を表します。秒で表すと約 68.1 年に相当し、まさに 1970 年から 2038 年の数字に相当します。

32 ビット システムで 2038 年 1 月 19 日 03:14:07 以降に表示される日付はオーバーフローします。

リーリー

では、64 ビット システムは影響を受けますか?

理論的にはいいえ、テストすることを強くお勧めします。 64 ビット システムで保存できる最も遠い日付は、現在の宇宙年齢の 21 倍、292 億年です。

32 ビット マシンでは、DateTime クラスを使用してこの問題を解決できます。 (PHP5.2でこのクラスの導入が始まり、バージョン5.3では一部のメソッドが拡張されました)

コードは次のとおりです:

リーリー

この記事が皆さんの PHP プログラミングの学習に役立つことを願っています。

Web サイトは PHP を使用して開発されていないのに、脆弱性スキャンで PHP の脆弱性が存在する可能性があるのはなぜですか?

具体的な脆弱性の説明がなければ何とも言えません
1. お使いのネット​​ワーク タイプは PHP によって開発されていませんが、PHP プログラムを実行する権限があるため、PHP 脆弱性プロンプトが表示されます。
2. 普遍的な技術的脆弱性はどの言語にも存在する可能性があり、スキャンされたイメージはそのまま PHP の脆弱性であると言えます。
3. A 言語リクエストに対する応答は正常ですが、PHP リクエストに対する応答は異常です。これはヒットタイプなので無視できます。
4. この脆弱性の名前は本当に思いつきません。「php 脆弱性」だけです

PHP Web サイト脆弱性スキャン ツール、無料

eesafe Website Security Alliance の無料 Web サイト脆弱性スキャンとトロイの木馬検出

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/882913.html技術記事 php の Y2K38 脆弱性解決策の分析例、y2k38 分析例 この記事では、php の Y2K38 脆弱性の解決策を分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです: Y2K3...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。