我正在写一些谷歌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'假设我正在使用谷歌Big-query客户端API执行查询,并且该API不允许像在传统RDBMS API上那样使用定位参数,那么在这种情况下,我如何防止类似sql-injection的攻击。
发布于 2014-01-18 07:48:50
发布于 2017-02-10 12:36:51
自从在BigQuery中推出标准SQL以来,就可以使用query parameters作为防止SQL注入的一种方法。在查询中,可以使用@后跟名称来指定命名参数,例如
SELECT x, y FROM T WHERE x <= @x_max AND y = @target_y;然后,您可以通过API的query_parameters属性提供参数值。
https://stackoverflow.com/questions/20805617
复制相似问题