ホームページ  >  記事  >  バックエンド開発  >  PHPフォームデータの改ざんを防ぐにはどうすればよいですか?

PHPフォームデータの改ざんを防ぐにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-08-19 12:05:24783ブラウズ

PHPフォームデータの改ざんを防ぐにはどうすればよいですか?

PHP フォーム データの改ざんを防ぐにはどうすればよいですか?

PHP を使用して Web サイトを開発する場合、フォームは頻繁に使用される対話方法です。しかし、多くの場合、フォームデータが改ざんされるリスクという深刻なセキュリティ問題に直面します。ハッカーは、悪意を持ってデータを送信したり、他の人の情報を変更したりするなど、フォーム データを改ざんすることによって不正な操作を実行する可能性があります。これを防ぐには、PHP にいくつかのセキュリティ対策を追加する必要があります。ここでは、PHP フォームデータの改ざんを防ぐ一般的な方法をいくつか紹介します。

  1. フォームのソースを確認する
    クライアントがフォーム データをサーバーに送信するとき、リクエストのソースを確認することでデータの正当性を保証できます。最も一般的な方法は、セッション検証またはトークン検証を使用することです。

セッション検証の原理は、ユーザーが Web サイトにアクセスすると、サーバーがユーザーに一意のセッション ID を割り当て、その ID をサーバーに保存することです。ユーザーがフォームを送信すると、サーバーはフォームで送信されたセッション ID がサーバーによって保存されたセッション ID と一致するかどうかを比較します。矛盾している場合は、データ ソースが不正である可能性があります。

サンプル コード:

session_start();
if(isset($_SESSION['token']) && $_POST['token'] == $_SESSION['token']){
    // 验证通过,处理表单数据
}else{
    // 验证失败,提示错误信息
}

トークン検証の原理は、ランダムに生成されたトークンをフォームに埋め込み、フォームの送信時にそのトークンをサーバーに送信することです。サーバーはそれを受信すると、フォーム内のトークンがサーバーに保存されているトークンと一致するかどうかを検証し、一致する場合は検証に合格します。

サンプル コード:

session_start();
if(isset($_POST['token']) && $_POST['token'] == $_SESSION['token']){
    // 验证通过,处理表单数据
}else{
    // 验证失败,提示错误信息
}
  1. HTTPS プロトコルの使用
    HTTPS プロトコルを使用すると、データ暗号化を通じてデータの安全な送信を保護できます。 HTTPS プロトコルは、SSL (Secure Socket Layer) または TLS (Transport Layer Security) を使用して通信内容を暗号化します。このようにして、ハッカーが送信データを傍受したとしても、コンテンツを復号化することはできないため、データの完全性とセキュリティが確保されます。

サンプル コード:

if($_SERVER['HTTPS'] != 'on'){
    header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    exit();
}
  1. フォーム データの正当性を検証する
    フォームのソースを検証することに加えて、フォームの入力データも検証する必要があります。ハッカーによる悪意のあるデータ送信の悪用を防ぐための合法性検証フォーム。たとえば、フォーム内の携帯電話番号、メールアドレス、パスワードなどの形式検証を実行できます。

サンプル コード:

if(!preg_match("/^1[3456789]d{9}$/", $_POST['phone'])){
    // 手机号格式不正确,提示错误信息
}

if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    // 邮箱格式不正确,提示错误信息
}
  1. 機密データの暗号化されたストレージ
    フォームにパスワード、ID 番号などのユーザーの機密情報が含まれている場合、データはデータベースに保存される前に暗号化されます。このようにして、ハッカーがデータベース内のデータを取得したとしても、平文の機密情報を取得することはできません。

サンプル コード:

$password = md5($_POST['password']); // 使用MD5加密密码
// 存储到数据库

概要:
HTTPS プロトコルを使用してフォーム データのソースを検証し、データの有効性を検証し、機密データを暗号化して保存します。 、PHP フォームデータが改ざんされるリスクを効果的に防ぐことができます。開発では、ユーザーデータがハッカーによって攻撃されないように、常にセキュリティを最優先する必要があります。

以上がPHPフォームデータの改ざんを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。