[Python-es] Para que se usa el "%"

Ricardo Cárdenes Medina ricardo.cardenes en gmail.com
Mar Nov 23 19:38:02 CET 2010


2010/11/23 Ricardo Cárdenes Medina <ricardo.cardenes en gmail.com>
>
>
> La idea es evitar cosas como los ataques de inyección SQL.
>

Nota: y no solo ataques. Imagina esto:

  >>> sql = "UPDATE usuarios SET nombre='%s' WHERE id = %d"
  >>> sql % ("O'neill", 15)
  "UPDATE usuarios SET nombre='O'neill' WHERE id = 15"

Como verás, hay un error de sintaxis. Y aquí ni siquiera tenemos a un
atacante, sino una entrada de datos válida.

En general el problema es al trabajar con cadenas de texto, por ejemplo, que
tienen que ir delimitadas (no es un problema con números), pero es mejor
acostumbrarse a no usar % para estas cosas en ningún caso y así evitamos
tentaciones y problemas.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101123/ffbd67f4/attachment.html>


Más información sobre la lista de distribución Python-es