phpbar.de logo

Mailinglisten-Archive

[php] PHPlib

[php] PHPlib

Johann-Peter Hartmann Hartmann_(at)_freecharts.de
Fri, 7 Jul 2000 11:10:09 +0200


Marcel Kurz schrieb:

> kleine frage zu Phplib 7.2b und zwar sollen sich die Benutzer nur
> einmal zur gleichen Zeit anmelden konnen .
> Wie kann ich feststellen ob ein User schon eingeloggt ist bzw.
> eine aktive Session hat ??? oder gibt es da einen "Schalter" wo ich dies
> (mehrfach Login unter einem Benutzernamen zur gleichen Zeit)
> unterbinden kann ???
> Oder hat jemand vielleicht ein Code Schnipsel ???

	Grundsätzlich ist HTTP eine Protokoll ohne Status, dh.
	es existiert keine verbindliche Aussage "Nutzer X ist online" .
	Dies läßt sich über Sessions und Timeouts faken, indem
	man einfach sagt "Jemand ist genau dann online, wenn
	er in den letzten zwei Minuten eine Seite aufgerufen hat".

	Das läßt sich auch über die PHPlib realisieren,
	indem man einfach eine $user-Variable registriert,
	die die aktuelle Session und den letzten Zugriff enthält.

	Bei jedem Zugriff überprüft man , ob
	a) die eigene Session die zuletzt registrierte ist, und
	   man innerhalb des Timeouts liegt  - dann ist alles in
	   Ordnung, und man setzt den letzten Zugriff auf den
	   aktuellen Zeitpunkt.
	b) eine andere Session die zuletzt registrierte ist.
	   wenn ja, dann überprüft man über den letzten Zugriff,
	   ob die andere Session noch aktiv ist. Wenn ja, loggt
	   man den aktuellen User wieder aus , sonst setzt man
	   die eigene Session mit der aktuellen Zeit in den
	   $user-Variablen.


	Zu Berücksichtigen ist, dass man sich damit bequem in den
	Fuss schiessen kann. Will man etwa gewährleisten, dass
	man zwischendurch Telefonieren darf, setzt man so einen
	Session-Timeout auf 10 Minuten.
	Wenn der Browser abstürtzt, muss man eben diese 10 Minuten
	warten, bis man weiterarbeiten kann.

> ach ja noch was:
> ich will den Usern die moglichkeit geben  jpg's oder gif's per
> PHP hochzuladen
> in wie weit kann dies zu einem Sicherheitsrisiko werden ???
> bzw. was kann man dagegen tun ???


	Mir würde zur Zeit nur ein DOS über Dateigröße
	einfallen, den man über die maximale Uploadgröße
	in PHP in den Griff bekommt.
	Sollen diese jpg's und Gifs dann im Browser angezeigt
	werden, würde ich eine Größenlimit in X/Y überprüfen,
	um GIF/JPEG-Bomben zu vermeiden
	(dh. komprimierte Grafiken, die nur 2 k gross, sind ,
	aber mit einer Auflösung von 100.000 * 100.000 Punkten
	entsprechenden Speicher in Computer und Grafikkarte
	belegen ) .
	Vielleicht ist das aber auch zu paranoid gedacht.

> Beste Gruesse


	Grüße, johann



php::bar PHP Wiki   -   Listenarchive