Форум сайта python.su
подскажите плз как сделать защиту по тому, что уже есть… Написал вроде по логике правильно, но что-то не работает. Пофиксите кто может.
генерация sid. все генерируется и в базу у меня заносится. это просто пример.
def saved_session(self, tag='gen'):
t1 = time.time()
time.sleep( random.random() )
t2 = time.time()
base = md5.new( tag + str(t1 +t2) )
sid = base.hexdigest()
return sid
def private(self):
if len(request.params) > 1 :
record = model.Addr()
record.ssid = request.params['ssid']
record = model.Addr.get_by(ssid = request.params['ssid'])
if record and record.ssid == request.params['ssid']:
session['ssid'] = request.params['ssid']
session.save()
h.redirect_to(action='vnc')
return Response ('Error')
Отредактировано (Фев. 15, 2008 10:33:11)
Офлайн
Непонятно зачем нужны строки
record = model.Addr()
record.ssid = request.params
Если после этого ты сразу переприсваиваешь record. Возможно лучше заменить их на record = None?
Так же условие record.ssid == request.params не имеет особого смысла, поскольку именно по этому параметру ты выбираешь из базы.
Офлайн
Viperможешь подсказать как мне сравнить имеющийся сид в url с сидом в базе?
Непонятно зачем нужны строки
record = model.Addr()
record.ssid = request.params
Если после этого ты сразу переприсваиваешь record. Возможно лучше заменить их на record = None?
Так же условие record.ssid == request.params не имеет особого смысла, поскольку именно по этому параметру ты выбираешь из базы.
Отредактировано (Фев. 15, 2008 11:49:50)
Офлайн
Я могу тебе подсказать что-то, но задавай более конкретные вопросы. Твой код сравнения выглядит нормальным (кроме описаных выше замечаний), если у тебя он не работает или работает не так как надо, то конкретно опиши когда это происходит, что в базе, что на входе в ф-цию.
Офлайн
ViperКак вырвать sid из URL я знаю…
Я могу тебе подсказать что-то, но задавай более конкретные вопросы. Твой код сравнения выглядит нормальным (кроме описаных выше замечаний), если у тебя он не работает или работает не так как надо, то конкретно опиши когда это происходит, что в базе, что на входе в ф-цию.
Офлайн
Зависит от базы данных, которую ты используешь.
Обычно это что-то типа:
connection = db.connect(bla-bla-bla)
cursor = connection.cursor()
cursor.execute("SELECT sid FROM sessions WHERE sid = %s", (sid))
rezult = cursor.fetchone()
cursor.close()
connection.close()
if result:
print 'yes!'
else:
print 'no!'
Офлайн
shizamysql
Зависит от базы данных, которую ты используешь.
Обычно это что-то типа:connection = db.connect(bla-bla-bla)
cursor = connection.cursor()
cursor.execute("SELECT sid FROM sessions WHERE sid = %s", (sid))
rezult = cursor.fetchone()
cursor.close()
connection.close()
if result:
print 'yes!'
else:
print 'no!'
Отредактировано (Фев. 16, 2008 15:28:41)
Офлайн
flashi4хм. а в чем ты это делаешь?
mysql
но я делаю request.params…
Офлайн
подскажи как обратиться к базе данных MySQL через Python ???
тока опиши поподробней а то я не допираю
Отредактировано (Фев. 16, 2008 15:47:11)
Офлайн
описать-то я опишу. но у тебя по ходу дела другой случай.
приведи сюда - какие модули ты импортируешь.
Офлайн