3 Stimmen

Laravel: Warum sind Cache-Daten binär?

Ich bin mir nicht sicher, aber ich glaube, dass die Daten, die mit Cache::remember gespeichert werden, binär sind. Es sieht etwa so aus und setzt sich fort: 3133 3632 3334 3838 3533 613a 343a 7b73.

Warum ist es codiert / binär / was auch immer es ist?

Bearbeitung: Ich verwende derzeit den Datei-Cache, weil der Datenbank-Cache mir Fehlermeldungen liefert.

2voto

Laurence Punkte 57276

Was du siehst, ist ein verschlüsselter zwischengespeicherter Cache

Der gesamte Cache stammt aus Store.php. DatabaseStore.php ist die einzige Methode, bei der die Speicherfunktion eine Verschlüsselung enthält. Der Quellcode für den Laravel-Datenbankcache enthält diesen Kommentar:

Alle zwischengespeicherten Werte in der Datenbank sind verschlüsselt, falls dies als Sitzungsdatenspeicher vom Verbraucher verwendet wird

Anders ausgedrückt, wenn deine Datenbank kompromittiert wurde - sind die Daten theoretisch geschützt, wenn sie keinen Zugriff auf deinen Quellcode haben.

Der Cache verwendet deinen geheimen Schlüssel (definiert in app.php) als Passphrase zum Verschlüsseln/Entschlüsseln dieses Schlüssels. Die Verschlüsselung erfolgt in der Datei Encrypter.php, die vom vererbten Speicherdatei (z.B. DatabaseStore.php) während der get/set-Cacheaufrufe aufgerufen wird.

Bearbeiten: als Demonstration - der folgende Datei-Cache

Cache::remember('test', 5, function()
{
    return 'Beispiel';
});

ergibt

 1362413945s:1:"Beispiel";

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X