Seite 1 von 1

Session ID und Cookie Neuling

Verfasst: Mittwoch 9. Juli 2008, 10:52
von würmchen
Ich fange gerade an mit Session ID und Cookies und so zeug und bekomme gerade ständig eine Fehlermeldung.

Ich hab ein wenig gegoogled und nach beispielen gesucht und bin dabei auf folgende gestoßen:

Beispiel 1
Beispiel 2

Irgendwie bekomme ich aber immer einen Fehler das die Datei cookies.lwp nicht geschrieben werden kann.
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] File "/var/www/localhost/cgi-bin/cookie.py", line 89, in ?
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1]
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] cj.save(COOKIEFILE) # save the cookies again
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] File "/usr/lib/python2.4/_LWPCookieJar.py", line 82, in save
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1]
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] f = open(filename, "w")
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] IOError
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] :
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1] [Errno 13] Permission denied: 'cookies.lwp'
[Wed Jul 09 11:45:04 2008] [error] [client 127.0.0.1]
Aus meinen error.log...

Kann mir da jemand helfen, oder mir Tips zum anfangen geben?

Verfasst: Mittwoch 9. Juli 2008, 11:37
von lutz.horn
Da steht es doch:

Code: Alles auswählen

[Errno 13] Permission denied: 'cookies.lwp' 
Du must also dem User, unter dem Dein Webserver läuft, Schreibrechte für die Cookies-Datei geben.

Verfasst: Mittwoch 9. Juli 2008, 11:48
von würmchen
Dann frage ich mich in welchem Verzeichnis er die erstellen will...

/var/www/localhost/cgi-bin/cookie.py gehört dem webserver, das Verzechnis selbst gehört dem webserver und er hat auch alle Rechte die es braucht...

Verfasst: Mittwoch 9. Juli 2008, 13:40
von Hyperion
Er beschwert sich ja auch über die Datei mit der Endung "lwp" ;-)

Verfasst: Mittwoch 9. Juli 2008, 14:42
von BlackJack
Und das soll uns jetzt bitte *was* sagen!?

Verfasst: Mittwoch 9. Juli 2008, 15:24
von Hyperion
Das die Datei "cookie.py" ja nicht das Problem darstellt, da der Server keine Zugriffsrechte zu einer anderen Datei hat.

Offensichtlich stimmt der Pfad zur cookies.lwp nicht und der Server will sie an einer anderen Stelle anlegen als vermutet. Oder aber die Datei existiert bereits und kann eben doch nicht mit den Rechten des Servers geschrieben werden.

Verfasst: Mittwoch 9. Juli 2008, 15:47
von BlackJack
Mit anderen Worten wolltest Du gar nichts sagen was würmchen nicht schon wusste. Und die Endung ist völlig egal.

Verfasst: Mittwoch 9. Juli 2008, 21:03
von jens
@würmchen: Ich verstehe nicht so ganz, warum überhaupt eine "cookies.lwp" ins Dateisystem gespeichern werden sollte. Wenn deine Web-App beim Client ein cookie hinterlegen will, ist es nicht notwendig auf dem Server irgendwelche Dateien zu speichern.

Zum Thema speichern, muß man einfach wissen, das normalerweise der CGI Prozess von Apache als User "Nobody" gestartet wird. Der User darf fast nix und das heißt in dem Fall, er darf keine Dateien anlegen in Verzeichnisse, die nicht World-Writeable gesetzt sind. IMHO geht es aber in /tmp/ Dateien abzulegen.

Verfasst: Dienstag 15. Juli 2008, 09:11
von würmchen
Ich hab es ehrlich gesagt auch nicht verstanden und hab dann auch das paket gewechselt.

bin jetzt zu dem python web paket gewechselt und das scheint für meine zwecke besser geeignet zu sein.

Dieses legt allerdings eine Datenbank zur cookie Verwaltung an, ob das gut oder schlecht ist werde ich denke ich noch heraus finden.

Allerdings hab ich da ein paar Probleme mit den headers, mal sehen wie ich die in den Griff bekomme.

danke trotzdem

Verfasst: Dienstag 15. Juli 2008, 10:09
von jens
Wie ich schon per PN schrieb, es macht keinen Sinn alles selber zu machen. Ich kann dir django empfehlen. Das eignet sich IMHO auch für ganz kleine Dinge. Der Vorteil ist, man kann vieles abschalten, hat aber auch die möglichkeit später die vielen Features zu nutzten.
Klar kann man auch sowas kleines nehmen wie werkzeug. Aber dann muß man später, wenn man mehr machen möchte doch wieder viel mehr Programmieren oder wechselt dann noch zu einem größeren Framework... Dann kann man die Zeit besser direkt in die Einarbeitung in django nutzten ;)

Verfasst: Dienstag 15. Juli 2008, 13:41
von lunar
jens hat geschrieben:Zum Thema speichern, muß man einfach wissen, das normalerweise der CGI Prozess von Apache als User "Nobody" gestartet wird.
Der Apache läuft in den seltensten Fällen als "nobody". Angesichts der Tatsache, dass Fileserver-Dienste wie vsftpd oder Samba anonyme Gastzugriffe häufig mit den Rechten von "nobody" durchführen, und NFS bei Root-Squashing Zugriffe mit der UID 0 auf "nobody" abbildet, wäre es auch sehr fahrlässig, Apache als "nobody" laufen zu lassen. Immerhin wäre es dann denkbar, dass nicht-authentifizierte User von außen Log-Dateien und ähnliches verändern, sofern der Apache nicht sicher programmiert ist.
Der User darf fast nix
Er darf genau so viel wie jeder andere Nutzer, der nicht die UID 0 hat.
er darf keine Dateien anlegen in Verzeichnisse, die nicht World-Writeable gesetzt sind. IMHO geht es aber in /tmp/ Dateien abzulegen.
Man kann auch genauso gut irgendwo ein Verzeichnis anlegen, und ihm nobody als Eigentümer verpassen. Global beschreibbare Verzeichnisse sind jedenfalls nicht erforderlich.

Und Django ist sicherlich auch nicht das Allheilmittel für Webprogrammierung.

Verfasst: Dienstag 15. Juli 2008, 14:06
von jens
lunar hat geschrieben:Der Apache läuft in den seltensten Fällen als "nobody".
Beim 08/15 SharedWebhosting allerdings schon...
lunar hat geschrieben:Und Django ist sicherlich auch nicht das Allheilmittel für Webprogrammierung.
Nicht für alles, aber IMHO für das meiste...

Verfasst: Dienstag 15. Juli 2008, 14:19
von lunar
jens hat geschrieben:
lunar hat geschrieben:Der Apache läuft in den seltensten Fällen als "nobody".
Beim 08/15 SharedWebhosting allerdings schon...
So? Bei welchem Hoster denn?

Normalerweise hat der Apache einen eigenen Nutzer und eine eigene Gruppe. Alles andere wäre auch völlig sinnlos.
lunar hat geschrieben:Und Django ist sicherlich auch nicht das Allheilmittel für Webprogrammierung.
Nicht für alles, aber IMHO für das meiste...
Meine Meinung ist da anders, aber das ist OT.

Verfasst: Donnerstag 24. Juli 2008, 09:32
von würmchen
Um Mich hier nochmal zu Wort zu melden :-)

Also ich hab mich wie man in meinem neuen Thread sieht für Django entschieden, weil ich das Konzept gut finde und ich ganz gut damit zurecht gekommen bin, zumindest der Einstieg.

Nochmal zu dem File. Schreibrechte waren vorhanden, dummerweise hatte ich vorher als "ich" das file ausgeführt, somit gab es schon eine solche Datei, allerdings war der Eigentümer ich und eben nicht apache. Hab ich leider übersehen und nicht drüber nachgedacht, bzw es einfach übersehen. Nachdem ich die Datei gelöscht hatte konnte zwar die Datei vom apache angelegt werden, allerdings hat es trotzdem nicht so wirklich geklappt wie ich mir das so vorstelle :-/
Egal, versuch mich wie gesagt gerade an Django...
Danke trotzdem für die Hilfe und die Ratschläge.


btw Ich kenn auch keinen Billighoster bei dem der user nobody ist ;-)