複雑さはエラーを生み出し、エラーはセキュリティの脆弱性につながる可能性があります。この単純な事実は、安全なアプリケーションにとってシンプルさがなぜ非常に重要であるかを示しています。不必要な複雑さは、不必要なリスクと同じくらい悪いものです。
たとえば、次のコードは、最近のセキュリティ脆弱性通知からの抜粋です:
CODE:
<?php $search = (isset($_GET['search']) ? $_GET['search'] : ''); ?>
このプロセスは、特に経験の浅い開発者にとって、$search 変数が汚染されている*という事実を混乱させる可能性があります。上記のステートメントは、次のプログラムと同等です:
CODE:
<?php $search = ''; if (isset($_GET['search'])) { $search = $_GET['search']; } ?>
上記 2 つの処理フローはまったく同じです。次の文に注目してください:
$search = $_GET['search'];
このステートメントを使用すると、$search 変数の状態がプロセスに影響を与えることなくそのまま維持され、汚染されているかどうかも確認できます。
* 注釈: 汚染された変数とは、プログラムの実行中に、変数の値が代入ステートメントによって直接指定されず、コンソール エントリやデータベースなどの他のソースから取得されることを意味します。
上記は PHP Security-Simplicity is Beautiful の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。