如何使用gbq防止SQL注入

2024-04-20 02:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用熊猫_gbq.read\u gbq读取安全地防止SQL注入,因为我在文档中找不到参数化它的方法

我看了一个参数化的方法,以及谷歌网站和其他来源的文件。你知道吗

df_valid = read_gbq(QUERY_INFO.format(variable), project_id='project-1622', location='EU')其中查询看起来像SELECT name, date FROM table WHERE id = '{0}'

我可以输入p'或'1'='1,它就工作了


Tags: 文件方法文档infoprojectiddfread
1条回答
网友
1楼 · 发布于 2024-04-20 02:33:38

根据Google BigQuery docs,必须使用带有SQL参数化语句的指定配置:

import pandas as pd

sql = "SELECT name, date FROM table WHERE id = @id"

query_config = {
    'query': {
        'parameterMode': 'NAMED',
        'queryParameters': [
            {
                'name': 'id',
                'parameterType': {'type': 'STRING'},
                'parameterValue': {'value': 1}
            }
        ]
    }
}

df = pd.read_gbq(sql, project_id='project-1622', location='EU', configuration=query_config)

相关问题 更多 >