Session ID und Cookie Neuling

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Session ID und Cookie Neuling

Beitragvon würmchen » Mittwoch 9. Juli 2008, 10:52

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?
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Beitragvon lutz.horn » Mittwoch 9. Juli 2008, 11:37

Da steht es doch:

[code=][Errno 13] Permission denied: 'cookies.lwp' [/code]

Du must also dem User, unter dem Dein Webserver läuft, Schreibrechte für die Cookies-Datei geben.
https://www.xing.com/go/invite/18513630.6a91d4
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Beitragvon würmchen » Mittwoch 9. Juli 2008, 11:48

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...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Mittwoch 9. Juli 2008, 13:40

Er beschwert sich ja auch über die Datei mit der Endung "lwp" ;-)
BlackJack

Beitragvon BlackJack » Mittwoch 9. Juli 2008, 14:42

Und das soll uns jetzt bitte *was* sagen!?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Mittwoch 9. Juli 2008, 15:24

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.
BlackJack

Beitragvon BlackJack » Mittwoch 9. Juli 2008, 15:47

Mit anderen Worten wolltest Du gar nichts sagen was würmchen nicht schon wusste. Und die Endung ist völlig egal.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 9. Juli 2008, 21:03

@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.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Beitragvon würmchen » Dienstag 15. Juli 2008, 09:11

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
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 15. Juli 2008, 10:09

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 ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Beitragvon lunar » Dienstag 15. Juli 2008, 13:41

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.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 15. Juli 2008, 14:06

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Beitragvon lunar » Dienstag 15. Juli 2008, 14:19

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.
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Beitragvon würmchen » Donnerstag 24. Juli 2008, 09:32

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 ;-)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder