2010-10-17 14 views
5

Uso de python con un DB sqlite: ¿cuál es el método utilizado para evitar que los datos salgan y sacar los datos que salen?python y sqlite - entrada de escape

Usando pySqlite2

Google tiene sugerencias en conflicto.

Respuesta

20

Utilice el segundo parámetro args para pasar argumentos; no hagas el escape tú mismo. No solo es más fácil, sino que también ayuda a prevenir ataques de inyección SQL.

cursor.execute(sql,args) 

por ejemplo,

cursor.execute('INSERT INTO foo VALUES (?, ?)', ("It's okay", "No escaping necessary") 
+0

Gracias, yo no estaba seguro de la forma de pitón, soy muy consciente de los ataques SQL, que es por lo que estoy tratando de encontrar la mejor manera en la pitón. Gracias, veré si hay más comentarios sobre esto y pruébalo. – Wizzard

+0

@Wizzard, unutbu tiene razón, esto funciona y le ahorrará muchos dolores de cabeza. Para la otra parte de su pregunta: pysqlite2 le devolverá los objetos del DB en el formato correcto, para que pueda usarlos directamente como int, float, string, datetime, ... – eumiro

Cuestiones relacionadas