WBOY
Lepaskan: 2024-04-09 12:12:01
asal
903 orang telah melayarinya

Kendalikan ralat HTTP 401 tanpa kebenaran dalam PHP dan tingkatkan keselamatan tapak web dengan menghantar ralat HTTP 401: header('HTTP/1.1 401 Unauthorized'); http_response_code(401); Nama"');Kes praktikal: secure_page.php menggunakan pengesahan asas untuk mengendalikan ralat HTTP 401.

掌握 PHP HTTP 401 未授权错误,提升网站安全性

Kuasai PHP HTTP 401 Ralat Tanpa Kebenaran dan Kuatkan Keselamatan Laman Web

Pengenalan

HTTP 401 Ralat Tanpa Kebenaran ialah respons pelayan yang cuba untuk mengakses sumber semula, yang menunjukkan bahawa sumber semula pelanggan perlu mengakses Bukti kelayakan adalah tidak sah atau tidak wujud. Mengendalikan ralat jenis ini adalah penting untuk memastikan tapak web anda selamat. Artikel ini akan menyelidiki pengendalian ralat HTTP 401 Tanpa Kebenaran dalam PHP dan menyediakan kes praktikal.

Mengendalikan Ralat HTTP 401

Dalam PHP, anda boleh menghantar ralat HTTP 401 melalui fungsi header(): header() 函数发送 HTTP 401 错误:

header('HTTP/1.1 401 Unauthorized');
Salin selepas log masuk

此外,可以通过 http_response_code() 函数设置 HTTP 状态代码:

http_response_code(401);
Salin selepas log masuk

添加身份验证

要解决 HTTP 401 错误,可以向请求添加身份验证信息。一种常见的做法是使用 basic HTTP 身份验证:

header('WWW-Authenticate: Basic realm="My Realm"');
Salin selepas log masuk

这会提示用户输入用户名和密码。验证成功后,$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW'] 变量将分别包含用户名和密码。

实战案例

假设您有一个名为 secure_page.php 的受保护页面,要处理 HTTP 401 错误并强制 basic 身份验证:

<?php
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Secure Page"');
    exit;
}

$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];

// 在数据库中检查用户名和密码
$valid = check_credentials($username, $password);

if (!$valid) {
    header('HTTP/1.1 401 Unauthorized');
    exit;
}

// 验证成功,显示受保护页面
?>
Salin selepas log masuk

check_credentials()rrreee

Selain itu, anda boleh menghantar ralat HTTP 401 melalui Fungsi http_response_code() Tetapkan kod status HTTP:

rrreeeTambah pengesahan

Untuk menyelesaikan ralat HTTP 401, anda boleh menambah maklumat pengesahan pada permintaan. Amalan biasa ialah menggunakan pengesahan HTTP asas: 🎜rrreee🎜Ini menggesa pengguna untuk nama pengguna dan kata laluan. Selepas pengesahan berjaya, pembolehubah $_SERVER['PHP_AUTH_USER'] dan $_SERVER['PHP_AUTH_PW'] akan mengandungi nama pengguna dan kata laluan masing-masing. 🎜🎜🎜Kes praktikal🎜🎜🎜Andaikan anda mempunyai halaman dilindungi yang dipanggil secure_page.php dan ingin mengendalikan ralat HTTP 401 dan memaksa pengesahan asas: 🎜rrreee🎜check_credentials() fungsi bertanggungjawab untuk menyoal pangkalan data dan mengesahkan nama pengguna dan kata laluan yang diberikan. 🎜🎜🎜Kesimpulan🎜🎜🎜Dengan pemahaman yang mendalam tentang ralat HTTP 401 dalam PHP, anda boleh meningkatkan keselamatan tapak web anda dengan mengendalikan permintaan pengesahan dengan betul dan menguatkuasakan pengesahan asas. Ini membantu melindungi data sensitif dan menghalang capaian yang tidak dibenarkan. 🎜

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan