sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo arreglar mi cadena F de Python en mi consulta para que no sea vulnerable a las inyecciones de SQL?

¡Aquí se explica cómo desinfectar una consulta dinámica usando un bucle de python al extraer datos!

tenga en cuenta que mi función get_dict_resultset se utiliza para conectarse a dB, extraer datos y almacenarlos en un diccionario de Python.

def get_dict_resultset(query, param):
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
    cur.execute(query, param)
    ans =cur.fetchall()
    dict_result = []
    for row in ans:
        dict_result.append(dict(row))
    return dict_result

Agregué param como argumento en la función y cur.execute .

for stock in symbols:
    stock_info[stock] = get_dict_resultset("SELECT 
                                            date, close          
                                            FROM security_price 
                                            WHERE 
                                            security_price.id=%s;", [stock])

Así es como edité mi código de forma segura para desinfectar mis entradas de usuario y proteger mi dB