gpt4 book ai didi

java - 如何防止 Google Big Query 上的查询注入(inject)

转载 作者:行者123 更新时间:2023-12-02 06:10:29 26 4
gpt4 key购买 nike

我正在向我们的网站编写一些 Google Big-query 动态报告实用程序,这将允许用户选择要在查询中替换的参数。给定此查询"template":

SELECT  name ,
birthday
FROM [dataset.users]
WHERE registration_date = '{{registration_date}}'

我们从用户处获取 {{registration_date}} 值并将其替换到模板中,从而生成一个查询:

SELECT  name ,
birthday
FROM [dataset.users]
WHERE registration_date = '2013-11-11'

鉴于我使用 Google Big-query 客户端 API 执行查询,在这种情况下如何防止类似 sql-injection 的攻击,并且该 API 不允许像传统 RDBMS api 那样使用定位参数。

最佳答案

自从 BigQuery 中推出标准 SQL 以来,就可以使用 query parameters作为防止 SQL 注入(inject)的一种方法。在查询中,您可以使用 @ 后跟名称来指定命名参数,例如

SELECT x, y FROM T WHERE x <= @x_max AND y = @target_y;

然后,您可以通过 API 的 query_parameters 属性提供参数值。

关于java - 如何防止 Google Big Query 上的查询注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com