Session Daten sicher in PHP speichern

8

Ich habe versucht zu verstehen, wie Sitzungen in PHP funktionieren, und festgestellt, dass Sitzungsdaten standardmäßig im Dateisystem gespeichert sind. In einer Shared-Hosting-Umgebung können Sitzungsdaten von PHP-Skripten gelesen werden, die von einem beliebigen Benutzer geschrieben wurden. Wie kann dies verhindert werden?

    
Zacky112 14.07.2010, 12:02
quelle

5 Antworten

6

Sie können den Session-Save-Handler überschreiben, damit Ihr Skript etwas anderes als das Dateisystem verwendet, z. B. eine Datenbank oder Memcache. Hier ist eine detaillierte Implementierung: Ссылка

    
Mike Sherov 14.07.2010 12:09
quelle
1

Hängt von der Zugriffsebene ab, die Sie auf die Datei php.ini haben. Wenn Sie sich in einer Shared Hosting-Umgebung befinden, die suPHP ausführt und Ihnen beispielsweise eine eigene php.ini-Datei zur Verfügung stellt, können Sie dies einfach festlegen der session.save_path zu einem Pfad wie ~ / tmp anstelle von / tmp, der normalerweise geteilt wird.

Zunächst einmal glaube ich nicht, dass Sie tatsächlich PHP-Session-Daten von anderen Anwendungen lesen können. Ich glaube, es ist etwas Einzigartiges für die Person, die es betrachtet.

Schlussendlich sind die Sessiondaten nicht nur im Dateisystem gespeichert. Es kann auch eingerichtet werden, um in einem Cookie auf dem Computer des Benutzers zu speichern, oder Sie können PHP-Sitzungsdaten einrichten, die in einer Datenbank gespeichert werden sollen.

    
Marco Ceppi 14.07.2010 12:10
quelle
1

Schreiben Sie Ihren eigenen SESSION-Wrapper.

Zum Beispiel ist CodeIgniters Sitzungsbibliothek nicht von der nativen Version von PHP abhängig und es ist sicherer:

  

Hinweis: Die Session-Klasse verwendet keine nativen PHP-Sitzungen. Es generiert eigene Sitzungsdaten und bietet mehr Flexibilität für Entwickler.

    
Otar 14.07.2010 12:14
quelle
1

Sie können session_save_path () verwenden, um das Sitzungsdatenverzeichnis in eines zu ändern wird nicht geteilt.

    
Hammerite 14.07.2010 12:18
quelle
1

Verwenden Sie session_save_path () und ändern Sie Ihren Sitzungsordner wie "/ htdocs / storage / sessions". Die Sitzungen werden jetzt nur in Ihrem angegebenen Pfad gespeichert.

    
osm 14.07.2010 12:31
quelle

Tags und Links