使用RGoogleDocs时如何防止密码泄露?

Far*_*rel 25 passwords r google-docs rstudio

我喜欢RGoogleDocs并且使用它很多.但是,我不喜欢一直输入密码.显然我可以在R脚本中输入密码,而不必再次输入密码.但这不可行,因为这意味着我的密码将在我的硬盘上保持未加密状态.此外,我与同事分享我的脚本.

为了解决这个问题,我提出了这个问题.

if(exists("ps")){
  print("got password, keep going")
} else {
  ps <-readline(prompt="get the password in ")
}

options(RCurlOptions = list(
  capath = system.file("CurlSSL", "cacert.pem", 
  package = "RCurl"), ssl.verifypeer = FALSE)
)

sheets.con = getGoogleDocsConnection(
  getGoogleAuth("notreal@gmail.com", ps, service ="wise")) 

#WARNING: this would prevent curl from detecting a 'man in the middle' attack
ts2=getWorksheets("hpv type",sheets.con)
Run Code Online (Sandbox Code Playgroud)

我喜欢使用RStudio.当我看到办公室里的任何同事显示我的密码时,我感到很不舒服.我使用了假密码,但看看图像.我的密码将在普通视图中供所有人在RStudio中查看.此外,如果我保存了一个工作区,我的密码会随之保存,如果几个月之后,当我很久以前忘记了它的内容时,我担心我会把它交给别人,我发送了我的.RData向同事提交.

我在之前的文章中读到了关于R中密码的一般信息.在使用RGoogleDocs时,它没有给我足够的信息来隐藏我的密码.

Dun*_*can 23

我的方法是在R启动文件的R选项列表中设置登录名和密码.Rprofile.然后我的代码获取值,getOption()然后值永远不可见或存储在顶级变量中globalenv().(如果通过事后调试,可以保存dump.frames).

至关重要的是,.Rprofile除了你以外的任何人都无法阅读.

所以

options(GoogleDocsPassword = c(login = 'password'))
Run Code Online (Sandbox Code Playgroud)

.Rprofile然后

auth = getGoogleAuth()
Run Code Online (Sandbox Code Playgroud)

只是作为第一个参数的默认值工作是寻找GoogleDocsPassword选项.

D.

  • 我不会在我的.Rprofile中调用getGoogleAuth()或getGoogleDocsConnection()或其他任何性质.为什么?因为我不会在每个R会话中使用GoogleDocs.我想在R会话期间想要连接时调用getGoogleDocsConnection().在.Rprofile中设置选项只是设置在需要时使用,如果不需要则不会引起任何问题. (2认同)

cra*_*ola 7

我有同样的问题,没有真正的解决方案.我使用的解决方法是,我为此目的创建了一个谷歌帐户,密码是我不关心的.然后,我分享了我希望R使用该帐户访问的文档.

但如果有人对我最感兴趣的初始问题有答案.