PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak mogę naprawić mój F-ciąg Pythona w moim zapytaniu, aby nie był podatny na iniekcje SQL?

Oto jak oczyścić dynamiczne zapytanie za pomocą pętli Pythona podczas pobierania danych!

proszę zauważyć, że moja funkcja get_dict_resultset służy do łączenia się z dB, pobierania danych i przechowywania ich w słowniku Pythona.

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

Dodałem param jako argument w funkcji i cur.execute .

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

W ten sposób bezpiecznie edytowałem mój kod, aby oczyścić dane wejściowe użytkownika i chronić mój dB




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zarządzanie wysoką dostępnością PostgreSQL – Część I:Automatyczne przełączanie awaryjne PostgreSQL

  2. KRYTYCZNY BŁĄD plik blokady postmaster.pid już istnieje

  3. Jak połączyć Postgres z serwerem localhost za pomocą pgAdmin na Ubuntu?

  4. Pobieranie kodowania bazy danych Postgres

  5. Importujesz schemat xml do postgres, aby automatycznie utworzyć tabelę, a następnie wypełnić ją plikiem xml?