MySQL コードのセキュリティを強化するための包括的なガイド
概要
mysql_この拡張機能は依然として一般的に使用されていますが、多くの場合、次の理由により PHP コードに脆弱性が生じます。ユーザー入力とエラー報告の不適切な処理。この記事の目的は、mysql_ 関数の正しい使用法を示す、安全で効率的なコード サンプルを紹介することです。
コード サンプル
<?php // Set HTTP headers for character encoding header('Content-type: text/html; charset=utf-8'); // Enable error reporting for development and testing error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 1); // In production, set 'display_errors' to 0 to suppress PHP error messages // Database configuration (modify as needed) $config = [ 'host' => '127.0.0.1', 'user' => 'my_user', 'pass' => 'my_pass', 'db' => 'my_database' ]; // Connect to the database and disable MySQL error output $connection = @mysql_connect($config['host'], $config['user'], $config['pass']); if (!$connection) { trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR); } // Select the database if (!mysql_select_db($config['db'])) { trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR); } // Set character encoding for the connection if (!mysql_set_charset('utf8')) { trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR); } // Accept and sanitize POST values $id = (int) $_POST['id']; // To prevent SQL injection $name = mysql_real_escape_string($_POST['name']); // Protects against SQL injection // Construct and execute the UPDATE query $result = mysql_query( 'UPDATE tablename SET name = "' . $name . '" WHERE id = "' . $id . '"' ); // Check the result and provide feedback if ($result) { echo htmlentities($name, ENT_COMPAT, 'utf-8') . ' updated.'; } else { trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR); } ?>
セキュアコーディングの実践
このコード サンプルは、機能を強化するために次のコーディングの実践に取り組んでいます。 security:
結論
これらの実践に従うことで、mysql_ 拡張機能を使用して安全で信頼性の高いデータベース クエリを作成できます。 PDO は新しい PHP アプリケーションに推奨されるアプローチですが、このコード サンプルは、必要に応じて mysql_ 関数を安全に使用するための強固な基盤を提供します。
以上がPHP で「mysql_」拡張機能を安全に使用して SQL インジェクションを防ぎ、コードの安全性を強化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。