Advertisement
teslariu

base insegura

Sep 6th, 2021
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.27 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #  Base insegura
  4. """
  5. MySQL --> mysql-connector-python, PyMySQL, MySQLdb
  6. PostgreSQL  --> psycopg, pg8000
  7. SQLite  -->  sqlite3
  8. SQLServer --> pymssql, pyodbc
  9. Oracle  --> cx_Oracle
  10. DB-API --> API estandar de Python
  11. """
  12.  
  13. import sqlite3
  14.  
  15. # creo una conexión con la base (si la base no existe, la crea)
  16. conn = sqlite3.connect("personas.sqlite")
  17.  
  18. # para hacer necesito tener un cursor
  19. cursor = conn.cursor()
  20.  
  21. # creo una tabla (ejecuto mi primera consulta)
  22. try:
  23.     cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
  24. except sqlite3.OperationalError:
  25.     pass
  26.    
  27.  
  28. # guardo los cambios
  29. conn.commit()
  30.  
  31. # pido datos para cargar en la tabla personas
  32. nombre = input("Ingrese el nombre: ")
  33. edad = int(input("Ingrese la edad: "))
  34.  
  35. # ejecuto una consulta y cargo los datos en la tabla
  36. # BASE VULNERABLE A INYECCION DE CODIGO SQL
  37. cursor.executescript(f"INSERT INTO personas VALUES('{nombre}',{edad})")
  38.  
  39. # actualizo todo
  40. conn.commit()
  41.  
  42. # consulto para imprimir los datos
  43. cursor.execute("SELECT * FROM personas")
  44. datos_personas = cursor.fetchall() # fetchone() para la primera
  45. print(datos_personas)
  46.  
  47. # cierro la base de datos
  48. conn.close()
  49.    
  50. # INSERT INTO personas VALUES('Carlos',18);DELETE FROM personas;--',18
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement