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

Hvordan kan jeg rette min Python F-streng i min forespørgsel, så den ikke er sårbar over for SQL-injektioner?

Sådan renser du en dynamisk forespørgsel ved hjælp af en python-løkke, når du trækker data!

Bemærk venligst, at min funktion get_dict_resultset bruges til at oprette forbindelse til dB, trække data og gemme dem i en python-ordbog.

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

Jeg tilføjede param som et argument i funktionen og cur.execute .

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

Det var sådan, jeg sikkert redigerede min kode for at rense mine brugerinput og beskytte min dB




  1. Konverter 'datetime2' til 'smalldatetime' i SQL Server (T-SQL-eksempler)

  2. SQL-indlejret forespørgsel langsom ved hjælp af IN

  3. Oracle Run Procedure med én ind-parameter og flere ud-parameter

  4. Android Room kompileringstid advarsel om kolonne i fremmed nøgle ikke en del af et indeks. Hvad betyder det?