PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je corriger ma chaîne F Python dans ma requête pour ne pas être vulnérable aux injections SQL ?

Voici comment nettoyer une requête dynamique à l'aide d'une boucle python lors de l'extraction de données !

veuillez noter que ma fonction get_dict_resultset est utilisé pour se connecter au dB, extraire des données et les stocker dans un dictionnaire 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

J'ai ajouté param comme argument dans la fonction et cur.execute .

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

C'est ainsi que j'ai édité mon code en toute sécurité pour assainir mes entrées utilisateur et protéger mon dB