いつ (if Ever) eval は悪ではないですか?
PHP の eval 関数は推奨されないことがよくありますが、PHP 5.3 でのその有用性については議論の余地があります。 。 LSB とクロージャの出現にもかかわらず、eval が依然として好ましい選択肢である考えられる使用例をいくつか示します:
安全な式の評価:
Eval は数値またはセキュリティリスクを引き起こすことなく、単純な数式などの PHP コードの他の特定のサブセット。
Unitテスト:
Eval は、コード フラグメントを動的に生成して特定のシナリオやコーナー ケースをテストすることで、単体テストを簡素化できます。
インタラクティブ PHP シェル:
次のようなインタラクティブ PHP 環境用シェルまたはコンソール、eval を使用すると、ユーザーはオンザフライで任意のコードを実行できます。
デシリアライズ信頼できる var_export データ:
Eval は、特にデータが信頼できることがわかっている場合、var_export 関数を使用してエクスポートされた PHP データを逆シリアル化するために必要です。
一部のテンプレート言語:
Smarty などの特定のテンプレート言語は、Web でコード フラグメントを動的に実行および表示するために eval に依存しています。アプリケーション。
管理者またはハッカーのためのバックドア:
推奨されていませんが、eval を使用して Web アプリケーションにバックドアまたはリモート アクセス ポイントを作成し、管理者またはハッカーが通常の認証をバイパスできるようにすることができます。メカニズム。
PHP 5.3 以前との互換性:
以前用に書かれたコードPHP バージョンでは、下位互換性を提供するために、特定の機能に対して eval を使用する必要がある場合があります。
構文チェック (注意喚起):
安全ではない可能性がありますが、eval は次の目的で使用できます。コードの実行を試行し、実行時エラーをキャプチャすることによる基本的な構文チェック。ただし、このアプローチでは完全な構文検証が保証されるわけではないことに注意することが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3