Seite 1 von 1
Casting mit Dictionaries
Verfasst: Montag 15. November 2004, 20:07
von mitsuhiko
Hallo.
Ich kann ja Dictionaries mit
umwandeln.
Aber leider nur in eine Richtung. Wie kann ich das möglichst einfach wieder zurückwandeln?
Verfasst: Montag 15. November 2004, 21:08
von rayo
Verfasst: Dienstag 16. November 2004, 04:58
von mitsuhiko
Ich könnt mich schlagen. Das ich da nicht selber draufkomm
Danke
Verfasst: Dienstag 16. November 2004, 09:20
von jens
Ich weiß ja nicht wofür es gebraucht wird... Aber ist eval() nicht generel böse
Ich meine, z.B. für CGI... Dann könnte man den String, der zu einem Dict "kovertiert" werden soll, evtl. manipulieren und schon sind böse Python Befehle eingeschleust...
Sollte man somit besser zu Fuss den String in ein Dict parsen? Also jede menge .split()...?
Verfasst: Dienstag 16. November 2004, 09:40
von mitsuhiko
Eval ist generell nicht böse.
Und ich rufe es ja so auf:
Code: Alles auswählen
# ------------------------------------------------------------------------ #
# Session Funktionen
def SessionStart(self):
if not self._COOKIE.has_key(self.__SESSION_ID):
sid = md5(str(time.time())+str(random.random()))
self.SetCookie(self.__SESSION_ID, sid, self.__SESSION_COOKIE_LIFETIME)
else:
sid = self._COOKIE[self.__SESSION_ID]
try:
session = file(self.__SESSION_NAME.replace("%SID%", sid)).read()
except:
session = "{}"
self._SESSION = eval(session)
self.__SESSION_OPEN = 1
self._sessionid = sid
def SessionSave(self):
sid = self._sessionid
if (self.__SESSION_OPEN):
try:
file(self.__SESSION_NAME.replace("%SID%", sid), "w").write(str(self._SESSION))
self.__SESSION_OPEN = 0
return 1
except:
return 0
Entnommen von hier
Da kann kein Benutzer irgendeinen Code hinzufügen. Aber so kann ich ganz bequem Sessions speichern.