match.arg是否提供足够的SQL注入保护?

时间:2017-05-12 05:16:05

标签: sql r postgresql

我希望使用RPostgreSQL包将数据插入到我的postgres表中,但我希望动态选择字段名称。例如:

library(RPostgreSQL)
insert_data <- function(conn_obj, num_to_insert, field_name = c('col1', 'col2')){

       field_name <- match.arg(field_name)
       query <- paste0('insert into table1 (', 
                       field_name, 
                       ') VALUES $1')

       postgresqlExecStatement(conn_obj,
                               query,
                               list(num_to_insert))


}

insert_data通过动态构建包含应放置num_to_insert的字段名称的查询来工作。我担心sql注入的可能性,所以我的问题是,match.arg是否保护我免受sql注入?是否有其他方法可以构建此类查询,以便字段名称可以用作(已清理的)变量?

0 个答案:

没有答案