PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso correggere la mia stringa F Python nella mia query per non essere vulnerabile alle iniezioni SQL?

Ecco come disinfettare una query dinamica utilizzando un ciclo python durante l'estrazione dei dati!

si prega di notare che la mia funzione get_dict_resultset viene utilizzato per connettersi al dB, estrarre dati e archiviarli in un dizionario 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

Ho aggiunto param come argomento nella funzione e cur.execute .

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

È così che ho modificato in sicurezza il mio codice per disinfettare i miei input utente e proteggere i miei dB