Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # PREVENCION DE INYECCION DE CODIGO
- # Inyeccion de SQL
- # >> Nombre: Ale', 22); DELETE FROM personas; --
- # >> Edad: 29
- import sqlite3
- conn = sqlite3.connect("base.sqlite")
- cursor = conn.cursor()
- cursor.execute("CREATE TABLE IF NOT EXISTS personas (nombre TEXT, edad NUMERIC)")
- conn.commit()
- nombre = input("Nombre: ")
- edad = int(input("Edad: "))
- # modo seguro
- # cursor.execute("INSERT INTO personas VALUES (?,?)",(nombre,edad))
- # modo inseguro
- # cursor.execute(f"INSERT INTO personas VALUES ('{nombre}', {edad})")
- # Lanza un sqlite3.Warning: You can only execute one statement at a time.
- """
- "INSERT INTO personas VALUES ('Ale', 22); DELETE FROM personas; --', 29)"
- Esto son 2 consultas SQL:
- 1) INSERT INTO personas VALUES ('Ale', 22) --> agrega Ale,22
- 2) DELETE FROM personas --> borra todos los datos de la tabla personas
- 3) --', 29) .> no importa -- significa comentario
- """
- # MODO FATAL
- cursor.executescript(f"INSERT INTO personas VALUES ('{nombre}', {edad})")
- conn.commit()
- conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement