Dil*_*yle 4 javascript sql security node.js google-bigquery
我需要将用户表单中的数据插入 bigquery,我想知道清理/转义/清理数据的最佳方法是什么。我正在使用Google Cloud BigQuery 库。
是否可以在该库的插入上使用参数化查询?我不知道如何,也许我需要使用 sql 插入而不是使用节点库插入(jsObject)?现在,我在将每个字符串放入 JS 对象之前使用 mysql 转义库,但我不确定这是否安全?
这是插入的样子:
bigquery
.dataset("analytics")
.table("actions")
.insert(someJSObjectWithUserInputData)
.then(() => {
console.log(`Inserted row`);
})
Run Code Online (Sandbox Code Playgroud)
通过加载作业或流 API 运行插入时,为了安全起见,您不需要转义数据。问题table.insert是数据流传入,因此无需担心安全逃逸。
如果您选择INSERT INTO使用新支持的 DML 语句,那么您将不得不担心转义。在这种情况下,您可以使用提到的参数化查询。您可以将标识符@param_name和位置参数与 一起使用?。
对于这种情况下的 Node.JS,您需要使用以下 API 参考,特别是params:
params:对于位置 SQL 参数,提供值数组。对于命名 SQL 参数,提供一个将每个命名参数映射到其值的对象。
https://cloud.google.com/nodejs/docs/reference/bigquery/1.2.x/BigQuery#query
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |