ホームページ  >  記事  >  バックエンド開発  >  ログインしていないユーザーが PHP でバックエンドに直接ジャンプできないようにする方法

ログインしていないユーザーが PHP でバックエンドに直接ジャンプできないようにする方法

PHPz
PHPzオリジナル
2023-03-23 14:11:021621ブラウズ

PHP を使用して Web サイトを開発する場合、ユーザー情報のセキュリティを確保することは非常に重要なタスクです。その1つは、不正操作や情報漏洩などを防ぐために、ログインしていないユーザーがバックエンドに直接ジャンプすることを禁止することです。この記事では、PHP コーディングを使用して、ログインしていないユーザーがバックエンドに直接アクセスできないようにする方法を紹介します。

1. ログインを実現するセッション

ユーザー情報のセキュリティを確保するため、Web サイト開発ではユーザー ID などの基本情報を保存するためにセッションがよく使用されます。 、ユーザー名、およびパスワード。セッション ログインを使用すると、一部の Web サイトのセキュリティ問題を効果的に防止し、Web サイトをより安定して安全に実行できるようになります。

セッションとは、サーバー側に情報を保存したりアクセスしたりするための技術で、非常に柔軟に保存・利用できるのが特徴です。 PHP でセッションを使用するには、セッション スイッチをオンにし、セッションの保存パスを設定する必要があります。ログイン後、session_register() 関数を使用して、セッションにユーザー情報を保存します。コードは次のように実装されます:

<?php
session_start();
$username="admin";//定义用户名
$password="123456";//定义密码
if($_POST[&#39;username&#39;]==$username && $_POST[&#39;password&#39;]==$password)
{
  $_SESSION[&#39;username&#39;]=$username;//将用户名存入内存中
  $_SESSION[&#39;password&#39;]=$password;//将密码存入内存中
  header("Location: admin.php");//跳转到后台页面
  exit();
}
?>

2. 不正アクセス禁止機能の実装 ログインユーザーによるバックエンドへの直接アクセス機能の実装

未ログインユーザーによるバックエンドへの直接アクセスを禁止する機能を実装します。 、バックエンド ページにログインしたかどうかを判断する必要があります。次のコードを背景ページのヘッダーに追加できます。

<?php
session_start();
if(!isset($_SESSION[&#39;username&#39;])||!isset($_SESSION[&#39;password&#39;]))
{
    header("Location: index.php");//跳转到登陆页面(也可自定义其他跳转页面)
    exit();
}
?>

コードの説明: 最初にセッションを有効にし、次にユーザーがログインしているかどうかを確認します。ログインしていない場合は、ログイン ページに直接ジャンプして、 PHPを終了します。

情報セキュリティを強化するには、session_start() の後に session_regenerate_id() 関数を設定して session_id を更新し、Web サイトのセキュリティを強化することをお勧めします。

3. 完全なサンプル コード

以下は、参考のために、ログインしていないユーザーがバックエンドに直接アクセスすることを禁止する完全なサンプル コードです。

<?php
//login.php 登陆页面
session_start();
$username="admin";//定义用户名
$password="123456";//定义密码
if($_POST[&#39;username&#39;]==$username && $_POST[&#39;password&#39;]==$password)
{
  $_SESSION[&#39;username&#39;]=$username;
  $_SESSION[&#39;password&#39;]=$password;
  header("Location: admin.php");//跳转到后台页面
  exit();
}
?>

<?php
//admin.php 后台页面
session_start();
if(!isset($_SESSION[&#39;username&#39;])||!isset($_SESSION[&#39;password&#39;]))
{
    header("Location: login.php");//跳转到登陆页面(也可自定义其他跳转页面)
    exit();
}

session_regenerate_id(true);// 更新 session_id
?>
つまり、上記の方法はWebサイトの情報セキュリティを守るために有効な方法ですが、いくつかのリスクもあり、特にセッションを利用する場合には、ユーザー情報の漏洩などに十分な注意が必要です。

以上がログインしていないユーザーが PHP でバックエンドに直接ジャンプできないようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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