Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # Base insegura
- """
- MySQL --> mysql-connector-python, PyMySQL, MySQLdb
- PostgreSQL --> psycopg, pg8000
- SQLite --> sqlite3
- SQLServer --> pymssql, pyodbc
- Oracle --> cx_Oracle
- DB-API --> API estandar de Python
- """
- import sqlite3
- # creo una conexión con la base (si la base no existe, la crea)
- conn = sqlite3.connect("personas.sqlite")
- # para hacer necesito tener un cursor
- cursor = conn.cursor()
- # creo una tabla (ejecuto mi primera consulta)
- try:
- cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
- except sqlite3.OperationalError:
- pass
- # guardo los cambios
- conn.commit()
- # pido datos para cargar en la tabla personas
- nombre = input("Ingrese el nombre: ")
- edad = int(input("Ingrese la edad: "))
- # ejecuto una consulta y cargo los datos en la tabla
- # BASE VULNERABLE A INYECCION DE CODIGO SQL
- cursor.executescript(f"INSERT INTO personas VALUES('{nombre}',{edad})")
- # actualizo todo
- conn.commit()
- # consulto para imprimir los datos
- cursor.execute("SELECT * FROM personas")
- datos_personas = cursor.fetchall() # fetchone() para la primera
- print(datos_personas)
- # cierro la base de datos
- conn.close()
- # INSERT INTO personas VALUES('Carlos',18);DELETE FROM personas;--',18
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement