Maîtrisez l'erreur non autorisée PHP HTTP 401 et améliorez la sécurité du site Web

WBOY
Libérer: 2024-04-09 12:12:01
original
859 Les gens l'ont consulté

Gérez les erreurs HTTP 401 non autorisées en PHP et améliorez la sécurité du site Web en envoyant des erreurs HTTP 401 : header('HTTP/1.1 401 Unauthorized'); http_response_code(401); Nom"');Cas pratique : secure_page.php utilise l'authentification de base pour gérer les erreurs HTTP 401.

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

Maîtrisez l'erreur non autorisée PHP HTTP 401 et renforcez la sécurité du site Web

Introduction

L'erreur HTTP 401 non autorisée est une réponse du serveur qui indique que le client tente d'accéder à une ressource qui nécessite une authentification, mais que la réponse fournie Les informations d'identification ne sont pas valides ou n'existent pas. La gestion de ce type d’erreur est essentielle pour assurer la sécurité de votre site Web. Cet article approfondira la gestion des erreurs HTTP 401 non autorisées en PHP et fournira des cas pratiques.

Gestion des erreurs HTTP 401

En PHP, vous pouvez envoyer des erreurs HTTP 401 via la fonction header() : header() 函数发送 HTTP 401 错误:

header('HTTP/1.1 401 Unauthorized');
Copier après la connexion

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

http_response_code(401);
Copier après la connexion

添加身份验证

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

header('WWW-Authenticate: Basic realm="My Realm"');
Copier après la connexion

这会提示用户输入用户名和密码。验证成功后,$_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;
}

// 验证成功,显示受保护页面
?>
Copier après la connexion

check_credentials()rrreee

De plus, vous pouvez envoyer des erreurs HTTP 401 via le Fonction http_response_code() Définir le code d'état HTTP :

rrreeeAjouter une authentification

Pour résoudre les erreurs HTTP 401, vous pouvez ajouter des informations d'authentification à la demande. Une pratique courante consiste à utiliser l'authentification HTTP de base : 🎜rrreee🎜Cela demande à l'utilisateur un nom d'utilisateur et un mot de passe. Après une authentification réussie, les variables $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW'] contiendront respectivement le nom d'utilisateur et le mot de passe. 🎜🎜🎜Cas pratique🎜🎜🎜Supposons que vous ayez une page protégée appelée secure_page.php, pour gérer les erreurs HTTP 401 et forcer l'authentification de base : 🎜rrreee🎜check_credentials() La fonction est chargée d’interroger la base de données et de valider le nom d’utilisateur et le mot de passe fournis. 🎜🎜🎜Conclusion🎜🎜🎜Avec une compréhension approfondie des erreurs HTTP 401 en PHP, vous pouvez améliorer la sécurité de votre site Web en traitant correctement les demandes d'authentification et en appliquant l'authentification de base. Cela permet de protéger les données sensibles et d’empêcher tout accès non autorisé. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!