Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # SQL INJECTION
- import sqlite3
- conn = sqlite3.connect("base.sqlite")
- cursor = conn.cursor()
- nombre = input("Ingrese un nombre: ")
- edad = int(input("Ingrese la edad: "))
- """
- #Forma segura
- cursor.execute("INSERT INTO personas VALUES (?,?)", (nombre,edad))
- conn.commit()
- """
- #Forma algo insegura
- #cursor.execute(f"INSERT INTO personas VALUES ('{nombre}',{edad})")
- # conn.commit()
- # voy a intentar un aatque de sql injection ingresando lo siguiente
- # nombre: Juan',25); DELETE FROM personas; --
- # edad: 32
- # esto ejecuta lo siguiente
- # "INSERT INTO personas VALUES ('Juan',25); DELETE FROM personas; --',32)"
- # arroja un warning, no un error
- # sqlite3.Warning: You can only execute one statement at a time.
- # ¿que hubiera pasado si tengo los warnings deshabilitados? --> hubiera vaciado
- # la tabla personas
- # Forma insegura
- cursor.executescript(f"INSERT INTO personas VALUES ('{nombre}',{edad})")
- conn.commit()
- cursor.execute("SELECT * FROM personas")
- personas = cursor.fetchall()
- print(personas)
- # Cierro la base
- conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement