首页 > 解决方案 > 在 Windows 中通过 R 中的程序访问文件时如何消除安全问题?

问题描述

在 R 程序的帮助下从磁盘访问 CSV 文件时,配置文件中提供了 CSV 文件的路径(路径类似于“testData/Amazon S3/Inventory/Accounts.csv”,在配置文件和cfig[2]$save.location是具有从配置文件访问的此路径的值的变量)。下面几行代码

path <- cfig[2]$save.location
test_data <- fread(path,stringsAsFactors = FALSE,drop=col_ignor,blank.lines.skip = TRUE)

但它给出了以下信息:

将 input= 作为系统命令 ('testData/Amazon S3/Inventory/Accounts.csv') 并在传递给的表达式中使用了一个变量input=。请使用 fread(cmd=...)。如果您正在创建应用程序并且该应用程序可能有恶意用户并且该应用程序未在安全环境中运行,则存在安全问题;例如,应用程序以 root 身份运行。请阅读 v1.11.6 的 NEWS 文件中的第 5 项以获取更多信息以及禁止显示此消息的选项。
' testData' 不是内部或外部命令、可运行程序或批处理文件。 警告消息
1:在(if (.Platform$OS.type == "unix") system else shell)(paste0("(", :
'(testData/Amazon S3/Inventory/Accounts.csv) > C:\Users\sharmb5\AppData\Local\Temp\RtmpOa25kH\filea78b5351f1' 执行失败,错误代码为 1.
2: In fread(cfig[2]$save. location, stringsAsFactors = FALSE, drop = col_ignor, : File 'C:\Users\sharmb5\AppData\Local\Temp\RtmpOa25kH\filea78b5351f1' 的大小为 0。返回 NULL data.table。

当以下代码行执行时,

config[4]$save.location <- stri_replace_all(config[4]$save.location, cp_val, fixed = cp_key)

它给出了一个错误,例如,Error in [<-.data.table(*tmp*, j, value = list(TestCaseID = "C419760", : Supplied 14 columns to be assigned 15 items. Please see NEWS for v1.12.2.

上述错误是一个警告,但在手动更新包之后。此警告会变成错误。这个问题背后的原因是什么以及如何解决?感谢提前!!!

标签: rcsvsecuritydata.tablestringi

解决方案


推荐阅读