Home Backend Development Python Tutorial SQL injection in duckdb query on pandas dataframe

SQL injection in duckdb query on pandas dataframe

Feb 09, 2024 pm 11:57 PM
overflow

pandas 数据帧上的 duckdb 查询中的 SQL 注入

Question content

In a project, I am using duckdb to perform some queries on a dataframe. For one of the queries, I need to add some user input to the query. That's why I want to know if sql injection is possible in this case. Can a user harm an application or system through input? If so, how can I prevent this from happening? It seems duckdb has no preparedstatement for dataframe queries.

I've looked in the documentation (https://duckdb.org/docs/api/python/overview.html) but can't find anything useful. The method duckdb.execute(query,parameters) seems to only work with databases with real sql connections, not dataframes.

There is also a question on stackoverflow on this topic (syntax for duckdb > python sql with parameter\variable), but the answer only works for real sql connections, and the version with f-strings seemed to me Not safe.

Here is a small code example to illustrate what I mean:

import duckdb
import pandas as pd

df_data = pd.DataFrame({'id': [1, 2, 3, 4], 'student': ['student_a', 'student_a', 'student_b', 'student_c']})
    
user_input = 3  # fetch some user_input here
    
# How to prevent sql-injection, if its even possible in this case?
result = duckdb.query("SELECT * FROM df_data WHERE id={}".format(user_input))
Copy after login

So how will you solve this problem? Is sql injection possible? Thanks for your help and if you need more information please feel free to ask for more details!

Edit: Fixed syntax error in code


Correct answer


Looks like it is possible:

>>> duckdb.execute("""SELECT * FROM df_data WHERE id=?""", (user_input,)).df()

   id    student
0   3  student_b
Copy after login

The above is the detailed content of SQL injection in duckdb query on pandas dataframe. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The price of Bitcoin since its birth 2009-2025 The most complete summary of BTC historical prices The price of Bitcoin since its birth 2009-2025 The most complete summary of BTC historical prices Jan 15, 2025 pm 08:11 PM

The price of Bitcoin since its birth 2009-2025 The most complete summary of BTC historical prices

What to do if the time is gone in the lower right corner of Windows 11_What to do if the time is gone in the lower right corner of Windows 11 What to do if the time is gone in the lower right corner of Windows 11_What to do if the time is gone in the lower right corner of Windows 11 May 06, 2024 pm 01:20 PM

What to do if the time is gone in the lower right corner of Windows 11_What to do if the time is gone in the lower right corner of Windows 11

Are there any community forums or discussion groups for Java functions where I can ask questions and discuss them? Are there any community forums or discussion groups for Java functions where I can ask questions and discuss them? Apr 28, 2024 pm 02:12 PM

Are there any community forums or discussion groups for Java functions where I can ask questions and discuss them?

How to use other people's code in python How to use other people's code in python May 05, 2024 pm 07:54 PM

How to use other people's code in python

What should I do if the time on my win11 computer is always wrong? How to adjust the wrong time on Windows 11 computer What should I do if the time on my win11 computer is always wrong? How to adjust the wrong time on Windows 11 computer May 03, 2024 pm 09:20 PM

What should I do if the time on my win11 computer is always wrong? How to adjust the wrong time on Windows 11 computer

Common exception types and their repair measures in Java function development Common exception types and their repair measures in Java function development May 03, 2024 pm 02:09 PM

Common exception types and their repair measures in Java function development

What does overflow mean in css What does overflow mean in css Apr 28, 2024 pm 03:15 PM

What does overflow mean in css

Doesn't anyone take care of Douyin's random accounts? Can I appeal a second time? Doesn't anyone take care of Douyin's random accounts? Can I appeal a second time? May 03, 2024 am 09:37 AM

Doesn't anyone take care of Douyin's random accounts? Can I appeal a second time?

See all articles