PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como posso corrigir minha string F do Python na minha consulta para não ficar vulnerável a injeções de SQL?


Aqui está como higienizar uma consulta dinâmica usando um loop python ao extrair dados!

observe que minha função get_dict_resultset é usado para se conectar ao dB, extrair dados e armazená-los em um dicionário 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

Eu adicionei param como um argumento na função 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])

Foi assim que editei meu código com segurança para higienizar minhas entradas de usuário e proteger meu dB