Javascript 如何安全地转义bigquery节点插入的用户输入?是否可以对bigquery.insert节点库使用参数化查询?

Javascript 如何安全地转义bigquery节点插入的用户输入?是否可以对bigquery.insert节点库使用参数化查询?,javascript,sql,node.js,security,google-bigquery,Javascript,Sql,Node.js,Security,Google Bigquery,我需要将用户表单中的数据插入bigquery,我想知道清理/转义/清除数据的最佳方法是什么。我在用电话 是否可以在该库的插入中使用?我不确定如何使用,也许我需要使用sql插入而不是使用节点库插入(jsObject)?现在,在放入JS对象之前,我在每个字符串上使用mysql转义库,但我不确定这是否安全 以下是插入的外观: bigquery .dataset("analytics") .table("actions") .insert(someJSObjectWithUserInputData) .

我需要将用户表单中的数据插入bigquery,我想知道清理/转义/清除数据的最佳方法是什么。我在用电话

是否可以在该库的插入中使用?我不确定如何使用,也许我需要使用sql插入而不是使用节点库插入(jsObject)?现在,在放入JS对象之前,我在每个字符串上使用mysql转义库,但我不确定这是否安全

以下是插入的外观:

bigquery
.dataset("analytics")
.table("actions")
.insert(someJSObjectWithUserInputData)
.then(() => {
    console.log(`Inserted row`);
})

当通过加载作业或流式API运行插入时,为了安全起见,不需要转义数据。在问题
表中。insert
是流式传输数据,因此不必担心安全性问题

如果您选择使用新的support DML语句插入到,那么您将不得不担心转义。在这种情况下,您可以使用前面提到的参数化查询。您可以将标识符(如
@param_name
和位置参数)与
一起使用

在这种情况下,对于Node.JS,您需要使用以下API引用,特别是
params

params:对于位置SQL参数,提供一个值数组。对于命名SQL参数,请提供一个对象,将每个命名参数映射到其值


谢谢。我以为table.insert会干净且安全,但我在任何地方都找不到它。我假设我想在选择退出任何用户输入数据时使用参数化查询?table.insert是完全安全的-因为那里没有可能的SQL注入