Найти - Пользователи
Полная версия: Капчи с базой и без
Начало » Django » Капчи с базой и без
1
romankrv
Хотел бы узнать Ваше мнение о приемуществах и недостатках использования каптч с приминением сохранения в базе контрольных значений и без баз. (например в сессиях)

Спасибо
slav0nic
можно и без сохранения, добавлять в форму скрытое поле с хэшем ответа на капчу + выводить картинку, в POST анализировать введённый текст и сравнивать с хешем.
Как все, впрочем, и делают.

зачем что-то где-то сохранять?)
romankrv
slav0nic
можно и без сохранения, добавлять в форму скрытое поле с хэшем ответа на капчу + выводить картинку, в POST анализировать введённый текст и сравнивать с хешем.
Как все, впрочем, и делают.

зачем что-то где-то сохранять?)
Ну например на гугл коде лежит app “simple-captcha” где в коде ее используется база
привожу часть кода оттуда:
from captcha.models import CaptchaStore
from django.http import HttpResponse, Http404
from django.shortcuts import get_object_or_404
import Image,ImageDraw,ImageFont,ImageFilter,random
from captcha.conf import settings

def captcha_image(request,key):

store = get_object_or_404(CaptchaStore,hashkey=key)
text=store.challenge
tmpimage = Image.new('RGB', (10,10), settings.CAPTCHA_BACKGROUND_COLOR)
if settings.CAPTCHA_FONT_PATH.lower().strip().endswith('ttf'):
font = ImageFont.truetype(settings.CAPTCHA_FONT_PATH,settings.CAPTCHA_FONT_SIZE)
Вот поэтому я и спрашиваю в чем приемущества и недостатки с базой и без
slav0nic
например на срвере icq.com капча генерируется и сохраняется на фс в файл, а не прямо вьюшкой, и после удачного разгадывания - удаляется с фс, при таком подходе можно и в базе писать, а так - не вижу смысла.
а по помоду кода - смотри что в CaptchaStore происходит
romankrv
lorien
А сделал я это затем, чтобы не протаскивать request через threadlocals хак.
А что есть threadlocals хак? Спрашиваю так как гугление не помогло.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB