ホームページ > バックエンド開発 > PHPチュートリアル > PHP 学習体験: 安全なコードの書き方

PHP 学習体験: 安全なコードの書き方

WBOY
リリース: 2023-08-17 21:38:01
オリジナル
1317 人が閲覧しました

PHP 学習体験: 安全なコードの書き方

PHP 学習体験: 安全なコードの書き方

インターネット時代、情報の急速な発展に伴い、ネットワーク セキュリティがますます重要な問題になっています。 PHP を学習している開発者として、安全なコードを書くことは避けられない責任です。この記事では、安全な PHP コードを作成する方法についての洞察を、いくつかのコード例とともに共有します。

  1. 入力検証
    入力検証は、安全なコードを記述する最初のステップです。悪意のあるユーザーが悪意のあるデータを送信するのを防ぐために、ユーザー入力から取得したデータはすべて検証する必要があります。携帯電話番号を確認する方法を示す簡単な例を次に示します。
function validatePhoneNumber($phoneNumber) {
   $pattern = "/^[1-9]d{10}$/";
   if (preg_match($pattern, $phoneNumber)) {
      // 验证通过,继续处理逻辑
   } else {
      // 验证失败,给出错误提示
   }
}
ログイン後にコピー
  1. 出力フィルタリング
    フロントエンド ページにデータを出力する前に、必ずデータをフィルタリングしてください。これにより、ユーザーが送信した悪意のあるスクリプトが実行されなくなり、XSS (クロスサイト スクリプティング攻撃) の脆弱性が回避されます。簡単な出力フィルタリングの例を次に示します。
function filterOutput($string) {
   return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}

// 输出到前端页面
echo filterOutput($userInput);
ログイン後にコピー
  1. データベース セキュリティ
    ユーザー入力をデータベース クエリに直接渡すことは非常に危険であり、SQL インジェクション攻撃に対して脆弱です。この状況を回避するには、プリペアド ステートメントとパラメータ バインディングを使用してデータベース クエリを処理し、データベースのセキュリティを保護します。次に、プリペアド ステートメントとパラメータ バインディングの使用例を示します。
$pdo = new PDO("mysql:host=localhost;dbname=myDatabase", "username", "password");

$statement = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$statement->bindParam(':username', $username);
$statement->bindParam(':password', $password);

$statement->execute();

$result = $statement->fetch(PDO::FETCH_ASSOC);
ログイン後にコピー
  1. ファイル アップロード
    ファイル アップロード機能は一般的に使用される機能ですが、潜在的なセキュリティ リスクでもあります。ユーザーが悪意のあるファイルやサーバー リソースを占有する巨大なファイルをアップロードできないようにするために、アップロードされるファイルにはファイル タイプ、ファイル サイズなどの合理的な制限を設ける必要があります。以下はファイルアップロードの例です:
if ($_FILES["file"]["size"] > 2000000) {
   echo "文件过大";
   exit;
}

$allowedFileType = array("pdf", "doc", "jpg", "png");
$allowedFileSize = 500000;

$uploadedFileType = strtolower(pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION));
if (!in_array($uploadedFileType, $allowedFileType)) {
   echo "不支持的文件类型";
   exit;
}

if ($_FILES["file"]["size"] > $allowedFileSize) {
   echo "文件过大";
   exit;
}

// 保存上传文件
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
ログイン後にコピー

上記の側面に注意を払うことで、安全な PHP コードを作成し、ユーザー データとシステム セキュリティを保護する能力を大幅に向上させることができます。もちろん、これらは基本的なセキュリティ対策の一部にすぎず、進化するネットワーク セキュリティの脅威に対処するために、最新のセキュリティ テクノロジを学び続け、注意を払う必要もあります。これらの洞察が、PHP を学習している開発者にとって役立つことを願っています。

以上がPHP 学習体験: 安全なコードの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート