sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu opravit svůj F-string Pythonu v dotazu, aby nebyl zranitelný vůči injekcím SQL?

Zde je návod, jak dezinfikovat dynamický dotaz pomocí pythonské smyčky při stahování dat!

všimněte si prosím, že moje funkce get_dict_resultset se používá k připojení k dB, stahování dat a jejich ukládání do pythonského slovníku.

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

Přidal jsem param jako argument ve funkci a cur.execute .

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

Takto jsem bezpečně upravil svůj kód, abych dezinfikoval své uživatelské vstupy a chránil své dB




  1. Vazba proměnné na název tabulky pomocí cx_Oracle

  2. MySQL:Jak zjistím, které tabulky odkazují na konkrétní tabulku?

  3. Použití funkcí password_hash a password_verify PHP 5.5

  4. Uchovávejte informace o účtu ve všech činnostech v android studiu