Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengesahan Keselamatan PHP dengan Firebase Hosting

Pengesahan Keselamatan PHP dengan Firebase Hosting

WBOY
WBOYasal
2023-07-24 11:07:481535semak imbas

Pengesahan Keselamatan PHP dengan Firebase Hosting

Ikhtisar:
Firebase Hosting ialah perkhidmatan pengehosan halaman web statik yang disediakan oleh Google yang boleh mengehoskan aplikasi bahagian hadapan dengan mudah. Walau bagaimanapun, untuk tapak web yang memerlukan pemprosesan dinamik, seperti tapak web PHP yang memerlukan log masuk pengguna dan pengesahan kebenaran, Firebase Hosting sahaja tidak dapat memenuhi keperluan. Artikel ini menerangkan cara menggunakan PHP untuk pengesahan selamat dalam Firebase Hosting, memastikan bahawa hanya pengguna yang disahkan boleh mengakses data sensitif.

Langkah:

  1. Buat projek Firebase dan sediakan Firebase Hosting
    Buat projek baharu dalam Firebase console dan ikut arahan untuk menyediakan Firebase Hosting. Buat dan terbitkan halaman web statik sebagai halaman utama lalai.
  2. Sediakan Firebase Cloud Functions
    Dalam terminal, buat direktori baharu dan mulakan Firebase Cloud Functions menggunakan perintah firebase init functions. Dalam fail index.js yang dihasilkan, tambahkan kod berikut: firebase init functions 命令初始化 Firebase Cloud Functions。在生成的 index.js 文件中,添加以下代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.authenticatedRequest = functions.https.onRequest((req, res) => {
  const key = req.query.key;
  if (key !== 'YOUR_SECRET_KEY') {
    return res.status(403).send('Forbidden');
  }

  // 进行自定义的权限验证逻辑
  // ...

  // 返回需要进行身份验证的数据
  res.send('Authenticated data');
});
  1. 添加 PHP 文件
    在 Firebase Cloud Functions 目录下创建一个名为 auth.php 的 PHP 文件,用于实现验证逻辑。以下是一个示例代码:
<?php
$key = "YOUR_SECRET_KEY";
$url = "https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/authenticatedRequest?key=".$key;

// 如果请求带有 cookie,并且 cookie 中包含用户的身份信息
if(isset($_COOKIE['uid'])) {
    // 验证用户身份,例如从数据库中查询用户信息
    $uid = $_COOKIE['uid'];
    $result = // 验证逻辑
    if ($result === true) {
        // 身份验证通过,发送 GET 请求获取数据
        $data = file_get_contents($url);
        echo $data;
        exit;
    }
}

// 身份验证未通过,跳转到登录页面
header("Location: login.php");
  1. 配置 Firebase Hosting
    在 Firebase Hosting 的 firebase.json 配置文件中,添加以下配置:
{
  "hosting": {
    "rewrites": [
      {
        "source": "**",
        "function": "authenticatedRequest"
      }
    ]
  }
}
  1. 部署并测试
    在终端上执行 firebase deploy
  2. rrreee
      Tambah fail PHP

      Buat fail bernama auth dalam direktori Firebase Cloud Functions .php Fail PHP digunakan untuk melaksanakan logik pengesahan. Berikut ialah contoh kod:

      rrreee
        🎜Mengkonfigurasi Firebase Hosting🎜Dalam fail konfigurasi firebase.json Firebase Hosting, tambahkan konfigurasi berikut: 🎜🎜rrreee
          🎜Sebarkan dan uji🎜Laksanakan perintah firebase deploy pada terminal untuk menggunakan fail PHP ke Firebase Hosting. Kemudian, lawati tapak web yang dihoskan oleh Firebase Hosting untuk melihat sama ada pengesahan keselamatan PHP telah berjaya dilaksanakan. 🎜🎜🎜Ringkasan: 🎜Melalui langkah di atas, kami berjaya melaksanakan pengesahan keselamatan PHP dalam Firebase Hosting. Dalam Firebase Cloud Functions, kami menyediakan fungsi yang hanya menerima kunci khusus untuk mengendalikan permintaan yang memerlukan pengesahan. Kemudian, dalam fail PHP, kami mengesahkan pengguna, menghantar permintaan GET kepada Firebase Cloud Functions untuk mendapatkan data dan mengubah hala pengguna yang tidak disahkan. Dengan cara ini, kami boleh melaksanakan tapak web PHP yang selamat dan memastikan bahawa hanya pengguna yang disahkan boleh mengakses data sensitif. 🎜

    Atas ialah kandungan terperinci Pengesahan Keselamatan PHP dengan Firebase Hosting. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn