Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/08/2012, 01:21
MacintoshD
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 12 años, 6 meses
Puntos: 7
Respuesta: Evitar Bots en formularios Django.

Hola, podemos descartar un Aataque de cualquier tipo al servidor, lo que sucede es que un sitio está usando el formulario de mi sitio para enviar datos, es decir, el recoge los datos a traves de su formulario y luego los procesa en mi formulario.

Te voy a dejar el pequeño codigo que uso, ya he tratado de varias formas y no lo he logrado:
Código Python:
Ver original
  1. def index_view(request):
  2.     configuracion = get_object_or_404(Configuracion, pk = 1)
  3.     info_enviado = False
  4.     nombre= ''
  5.     numero = ''
  6.     mensaje = ''
  7.     if request.method == 'POST':
  8.         formulario = SmsFree(request.POST)
  9.         if formulario.is_valid():
  10.             info_enviado = True
  11.             nombre = formulario.cleaned_data['nombre']
  12.             numero = formulario.cleaned_data['numero']
  13.             mensaje = smart_str(formulario.cleaned_data['mensaje'])
  14.             url =  'http://dominio.com'
  15.             headers = {'Referer':'http://dominio.com/index.php'}
  16.             valores = {'username': 'usuario', 'password': 'clave'}
  17.             r = requests.post(url, params=valores, headers=headers)
  18.     else:
  19.         formulario = EnviarForm()
  20.     ctx = {'ejemplo','ejemplo'}
  21.     ctx.update(csrf(request))
  22.     return render_to_response('home.html',  ctx, context_instance=RequestContext(request))

En el template lo tengo así:
Código:
{% csrf_token %}
{{ formulario.as_p }}
Estuve leyendo un poco en la documentación, me puedes ilustrar un poco :), tambien vi que el csrf es estatico, es decir, no cambiar el valor.

Documentación.

Muchas Gracias,
Saludos.

Última edición por MacintoshD; 11/08/2012 a las 04:52