Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Cookie-Nutzungsfälle in PHP

Detaillierte Erläuterung der Cookie-Nutzungsfälle in PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 11:11:142004Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Cookie-Nutzung-Fälle in PHP und der Vorsichtsmaßnahmen für die Verwendung von Cookies in PHP geben. Das Folgende ist ein praktischer Fall Schauen Sie mal rein.

Was sind Cookies?

Cookies oder kleine Cookies sind Datenelemente, die auf der Seite des Benutzeragenten gespeichert werden (Browser sind die häufigsten Benutzeragenten). Beim Surfen im Internet fügt der Browser das gültige Cookie der aktuellen Seite in den Header der Anfrage ein und sendet es an den Server.

Cookie-Zusammensetzung

Cookie besteht aus folgenden Teilen:

Domain, der Domainname, zu dem das Cookie gehört. Wenn der Browser ein Cookie sendet, prüft er den Domänennamen, zu dem das Cookie gehört, und sendet es nur, wenn er übereinstimmt. Der Browser sendet das Cookie unter der Domäne tlanyan.me an die Seitenanforderung von www.tlanyan.me oder dev.tlanyan.me, sendet es jedoch nicht an www.baidu.com. Ebenso kann das Cookie von dev.tlanyan.me nicht an tlanyan.me gesendet werden, da der Domänenname auf die Unterdomäne dev beschränkt ist.

Pfad, der Pfad, zu dem das Cookie gehört. Auf /author gesetzte Cookies werden nicht an den /category-Pfad gesendet, aber auf / gesetzte Cookies werden an alle Seitenanfragen gesendet.

Name, der Name des Cookies (Schlüsselname).

Wert, der Wert (Inhalt) des Cookies.

läuft ab, Ablaufzeit.

sicher, ob dieses Cookie nur bei https gesendet wird.

httponly, ob es nur für die HTTP-Übertragung verwendet wird. Wenn dieser Wert auf „true“ gesetzt ist, kann die browserseitige Skriptsprache nicht auf das Cookie zugreifen.

Zwecke von Cookies

Cookies werden hauptsächlich in folgenden Aspekten verwendet:

http ist ein zustandsloses Protokoll und zur Kennzeichnung sind zusätzliche Daten erforderlich Cookies sind das am häufigsten verwendete Mittel. Die beiden gängigen Arten von Cookies, PHPSESSID und JSESSIONID, werden zur Aufrechterhaltung von Sitzungen in PHP- bzw. Java-Webanwendungen verwendet.

Einige Daten müssen auf der Clientseite gespeichert werden, und Cookies sind eine Option. Nachdem der Benutzer „Nicht erneut auffordern“ aktiviert hat, kann das Logo auf dem Client gespeichert werden und das Programm kann erneut aufgerufen werden, um die Einstellungen zu lesen und zu entscheiden, ob es angezeigt werden soll. Mit der Popularität von HTML 5 wird dieser Teil der Funktion langsam durch localStorage ersetzt.

Cookie-Operation auf der PHP-Seite

Das Lesen von Cookies kann alle Cookies von der Benutzerseite über die $_COOKIEsuper globale Variable lesen. $_COOKIE ist ein Array, das durchlaufen werden kann, um den Namen und den Wert des gesendeten Cookies zu lesen. Der Browser sendet nur den Schlüsselwert des Cookies an den Server und kann daher die Domäne/Pfad/Abläufe und andere Informationen des Cookies nicht lesen.

PHP bietet die Setcookie-Funktion zum Senden von Cookies an den Client. Die Funktionssignatur von setcookie lautet:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

Die Parameter entsprechen dem Inhalt des Cookies: Der Ablaufwert ist standardmäßig 0, was bedeutet, dass er nur für die aktuelle Sitzung gültig ist. Das Cookie wird gelöscht, nachdem der Benutzer geschlossen hat Der Pfad des Browsers ist standardmäßig der aktuelle Seitenpfad, d Der Name der übergeordneten Domäne oder der Domäne der obersten Ebene ist standardmäßig auf „false“ eingestellt. Es wird empfohlen, ihn auf „true“ zu setzen, um XSS-Angriffe zu vermeiden.

Um ein Cookie zu löschen, müssen Sie nur die Ablaufzeit des Cookies auf den vergangenen Zeitstempel festlegen, zum Beispiel time() – 3600. Um also das Cookie foo zu löschen, kann der Code sein:

setcookie('foo', '', time() - 3600);

Gute Cookie-Praktiken

Aus der wörtlichen Bedeutung des Cookies geht hervor, dass es Datenfragmente speichert. Cookies werden häufig in der Webentwicklung verwendet und sollten besser verstanden werden. Im Folgenden finden Sie einige bewährte Vorgehensweisen für die Verwendung von Cookies:

Übermäßig große und übermäßige Daten sollten nicht in Cookies gespeichert werden.
Cookies sind auf dem Client und während der Übertragung deutlich sichtbar. Sensible Daten sollten nicht in Cookies gespeichert werden Informationen:
Stellen Sie das httponly-Attribut des Cookies so weit wie möglich auf true ein.
Cookies werden vollständig vom Client kontrolliert und sind auch externe Eingaben. Der Server kann ihnen nicht blind vertrauen und sollte sie filtern ihnen.
Andere

Cookies werden mit der Anfrage gesendet und mit der Antwort an den Client gesendet. Nachdem Sie diesen Prozess verstanden haben, können Sie einige häufige Probleme verstehen, mit denen Anfänger konfrontiert sind, wie zum Beispiel den folgenden Code:

if (!isset($_COOKIE['foo']) {
   setcookie('foo', 'foobar');
 } 
 $foo = $_COOKIE['foo'];

Wenn das Cookie foo nicht gesetzt ist, tritt in Zeile 5 ein Fehler auf. Der Grund dafür ist, dass setcookie die Cookie-Informationen für diese Antwort setzt. Der Browser muss die Antwort empfangen und setzen, bevor er das Cookie an nachfolgende Anfragen anhängen kann, und es wird in dieser Anfrage nicht widergespiegelt.

In ähnlicher Weise sind Cookies in den Header-Informationen von Anforderungen und Antworten vorhanden, und der Header sollte vor dem Anforderungstext stehen, sodass die Nutzungsbeschränkungen für den Funktionskontext von setcookie mit denen der Header-Funktion identisch sind, das heißt: Der Antworttext kann nicht vorhanden sein schon einmal verschickt.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der PHP-Curl-Stapelverarbeitung zur Implementierung kontrollierbarer gleichzeitiger asynchroner Betriebsfälle

PHP+MySQL Implementierungsnachricht Detaillierte Erläuterung der Warteschlangenschritte

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Cookie-Nutzungsfälle in PHP. 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