CGIHTTPServer - Basic Auth? (reloaded)

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
barrio
User
Beiträge: 30
Registriert: Dienstag 26. Februar 2013, 13:15

Hi zusammen,

das Thema gabs 2005-8 schon mal, aber da ich nun ja gelernt habe keine Zombiethreads zu reanimieren, hier meine Frage als neues Thema :) :

Ich mache grade meine ersten Gehversuche mit Python 3 & CGI und habe ein kleines Script gebastelt, das Eingaben aus einem HTML-Formular empfängt und weiterverarbeitet. Dazu benutze ich als HTTP-Server den Paarzeiler aus dem Tutorial und das klappt auch alles prima soweit.

Nun möchte ich den Zugriff auf die vom Server verwalteten Verzeichnisse und Dateien nur per Passwortauthorisierung zulassen (im LAN). In dem früheren Beitrag dazu hieß es, an dieser Stelle sei ein Framework angebracht. Mich in CherryPy oder mächtigere Konsorten einzuarbeiten habe ich momentan aber nicht so die Lust.

Wie müsste denn serverseitig ein CGI-Script aussehen, dass user:pwd über eine URL annimmt und abgleicht und dann den Zugriff freigibt bzw unterbindet?

Besten Dank schon mal vorab!
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
barrio
User
Beiträge: 30
Registriert: Dienstag 26. Februar 2013, 13:15

Wenn auf die Schnelle keiner ne Idee hat antworte ich mir schon mal ein bischen selber :D
Eine recht simple Methode hab ich in Python ge-packt gefunden: Das Passwort einfach per MD5/SHA-Hash im Script hardcoden und selbigen mit dem Hash aus der Passworteingabe im Webformular abgleichen.

Jetzt bräuchte ich nur noch nen schlanken CGI-fähigen HTTPS-Server dazu, hätte da vielleicht jemand ein Sniplet parat?

TNX
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
Faule Socke
User
Beiträge: 11
Registriert: Mittwoch 27. März 2013, 10:57

Passwörter nicht in der URL (also nicht per get-method) übertragen! Also wirklich... Allgemein gehören Formulardaten nicht in die URL. CGI-Fähige Server gibt es doch wie Sand am Meer, z.B. Apache... Für Python gibt es aber bessere Interfaces als CGI, z.B. WSGI[1] wie in PEP333[2] spezifiziert. Das wsgiref hält dir Utilities und einen Testserver dazu bereit[3].

Gruß Socke

[1] http://wsgi.readthedocs.org/en/latest/
[2] http://www.python.org/dev/peps/pep-0333/
[3] http://docs.python.org/2/library/wsgire ... le-wsgiref
Antworten