Heim  >  Artikel  >  Backend-Entwicklung  >  Vertiefende Kenntnisse über PHP 401 Unauthorized und den Autorisierungsmechanismus

Vertiefende Kenntnisse über PHP 401 Unauthorized und den Autorisierungsmechanismus

WBOY
WBOYOriginal
2024-04-09 12:30:021124Durchsuche

Der 401 Unauthorized-Fehler in PHP bedeutet, dass die Anfrage nicht autorisiert ist. Dies kann folgende Ursachen haben: 1. Der Client hat keine Anmeldeinformationen angegeben. 2. Die Anmeldeinformationen sind ungültig. 3. Der Client hat keine Berechtigung, auf die Ressource zuzugreifen. Um unbefugten Zugriff zu verhindern, bietet PHP Autorisierungsmechanismen, darunter: 1. Basisautorisierung (HTTP-Authentifizierung); 2. Token-Autorisierung (JWT/OAuth); 3. Sitzung (Speicherung authentifizierter Benutzerinformationen);

深入理解 PHP 401 Unauthorized 及授权机制

Detailliertes Verständnis von PHP 401 Unauthorized und Autorisierungsmechanismus

Einführung

Der 401 Unauthorized-Fehler in PHP weist darauf hin, dass die Anfrage nicht autorisiert ist. Dieser Fehler ist normalerweise auf einen der folgenden Gründe zurückzuführen:

  • Der Client hat keine Anmeldeinformationen angegeben.
  • Die angegebenen Anmeldeinformationen sind ungültig.
  • Der Client hat keine Berechtigung, auf die angegebene Ressource zuzugreifen.

Autorisierungsmechanismus

Um unbefugten Zugriff zu verhindern, bietet PHP eine Vielzahl von Autorisierungsmechanismen, darunter:

  • Grundautorisierung: Benutzername und Passwort für die HTTP-Authentifizierung verwenden.
  • Token-Autorisierung: Authentifizierung mit JSON Web Tokens (JWT) oder OAuth 2.0-Tokens.
  • Sitzung: Verwenden Sie eine PHP-Sitzung, um die authentifizierten Benutzerdetails zu speichern.

Praktischer Fall:

Angenommen, wir haben eine PHP-Anwendung und müssen eine Datei namens „secret.php“ schützen. Dies können wir mit der Basisautorisierung erreichen:

<?php

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
    // 拒绝访问并显示错误消息
    header('HTTP/1.1 401 Unauthorized');
    exit;
}

// 验证凭据
if ($_SERVER['PHP_AUTH_USER'] != 'username' || $_SERVER['PHP_AUTH_PW'] != 'password') {
    // 验证失败
    header('HTTP/1.1 401 Unauthorized');
    exit;
}

// 允许访问
// ...

Hinweis:

  • Die Basisautorisierung ist ein einfacher und häufig verwendeter Autorisierungsmechanismus, der jedoch weniger sicher ist, da die Anmeldeinformationen im Klartext übertragen werden.
  • Für eine sicherere Option sollten Sie die Verwendung von Token oder Sitzungen in Betracht ziehen, da diese keine Anmeldeinformationen übertragen.

Das obige ist der detaillierte Inhalt vonVertiefende Kenntnisse über PHP 401 Unauthorized und den Autorisierungsmechanismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn