Démystifier HTTP 401 non autorisé : problèmes de restriction d'accès dans le développement PHP

王林
Libérer: 2024-04-09 16:06:01
original
1062 Les gens l'ont consulté

L'erreur HTTP 401 non autorisée indique que le serveur ne peut pas accepter les requêtes non authentifiées. Pour résoudre ce problème, vous pouvez suivre ces étapes : Activez l'authentification de base HTTP pour demander à l'utilisateur ses informations d'identification. Vérifiez les informations d'identification fournies et autorisez l'accès uniquement aux utilisateurs autorisés.

揭秘 HTTP 401 未授权:PHP 开发中的访问限制问题

Révéler HTTP 401 non autorisé : problèmes de restriction d'accès dans le développement PHP

Le code d'erreur HTTP 401 non autorisé signifie que le serveur rejette la demande sans vérification. Cela signifie que le serveur nécessite des informations d'identification valides pour accéder aux ressources protégées. En PHP, ce code d'erreur peut être facilement généré en utilisant la constante HTTP_UNAUTHORIZED :

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

Pour empêcher tout accès non autorisé, les étapes suivantes peuvent être implémentées dans les applications PHP :

1 Activer l'authentification de base HTTP

// 在 PHP 脚本的顶部添加以下行:
header('WWW-Authenticate: Basic realm="Restricted Area"');
Copier après la connexion

Ceci. invitera l'utilisateur à saisir son nom d'utilisateur et son mot de passe via une boîte de dialogue contextuelle.

2. Vérifier les informations d'identification

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  // 从服务器变量中获取提供的凭据
  $username = $_SERVER['PHP_AUTH_USER'];
  $password = $_SERVER['PHP_AUTH_PW'];
  
  // 检查凭据的有效性,例如:
  if ($username === 'admin' && $password === 'password') {
    // 授权已验证的用户
  } else {
    // 拒绝访问
    header('HTTP/1.1 401 Unauthorized');
  }
} else {
  // 拒绝访问,因为未提供凭据
  header('HTTP/1.1 401 Unauthorized');
}
Copier après la connexion

Exemple pratique

Voici un script PHP simple qui montre comment protéger une page et autoriser l'accès uniquement aux utilisateurs autorisés :

<?php
// 启用 HTTP 基本身份验证
header('WWW-Authenticate: Basic realm="Protected Area"');

// 验证凭据
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  $username = $_SERVER['PHP_AUTH_USER'];
  $password = $_SERVER['PHP_AUTH_PW'];

  // 检查凭据的有效性(例如,从数据库中检索)
  if ($username === 'john' && $password === 'example') {
    // 授权用户,显示受保护的内容
    echo '<h1>欢迎,' . $username . '!</h1>';
  } else {
    // 凭据无效,拒绝访问
    header('HTTP/1.1 401 Unauthorized');
  }
} else {
  // 未提供凭据,拒绝访问
  header('HTTP/1.1 401 Unauthorized');
}
?>
Copier après la connexion

En suivant ces étapes, vous pouvez facilement implémenter restrictions d'accès dans les applications PHP pour garantir que seuls les utilisateurs autorisés peuvent accéder aux données ou ressources sensibles.

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!