【问题标题】:Ignore weak DH in RCurl or curl忽略 RCurl 或 curl 中的弱 DH
【发布时间】:2020-08-13 20:00:47
【问题描述】:

我使用下面的代码从帖子中的 url 下载了 CSV,但是由于最近更新了我的系统 libcurl,我的 curl 变得更加谨慎并抱怨 DH 参数较弱,在 bash 中我可以忽略较弱的 DH-带有--ciphers 'DEFAULT:!DH' 选项的参数。我没有在httrcurlRCurl 包中分别找到GETfetch_memorygetURL 函数的选项,它们的作用相同。

如何在 R 中忽略此错误? (其他所有支持良好的库也可以使用,最好是 tidyverse 或来自 r-opensci 的东西)

raw_data <- read_delim(
  "https://info.gesundheitsministerium.at/data/Epikurve.csv",
  delim = ";",
  col_types = cols(col_date(format="%d.%m.%Y"), col_integer(), col_datetime())
  )

请注意,根据您的 libcurl 版本,您将无法重现这一点,旧版本似乎对弱 DH 参数更宽容。我从事 Debian 测试。

【问题讨论】:

  • "... ,在 bash 中我可以使用 --ciphers 'DEFAULT:!DH' ..." 忽略弱 DH 参数 - 实际上,您不会忽略弱参数这边走。您只需要求首先不进行 DH 握手,因此您无需忽略任何内容。
  • 谢谢,那么参数的名称也更有意义。完全不安全的下载也适用于我,我只是从公共来源下载数据。
  • wiki.debian.org/ContinuousIntegration/TriagingTips/… 中所述,您可以使用密码列表“DEFAULT@SECLEVEL=1”来低于新的默认值 SECLEVEL=2,遗憾的是,有些服务器还没有准备好遵循。
  • 酷,我仍然希望找到一些东西来只为一个请求执行此操作,但如果这不起作用,它是一种解决方法。

标签: r ssl curl web-scraping rcurl


【解决方案1】:

由于 curl 命令行实用程序在我的平台上可用,我发现的最简单的解决方案就是使用它来下载数据,并使用在 bash 中工作的参数。

raw_data <- read_delim(
  system2(
    "curl",
    args=c(
      "https://info.gesundheitsministerium.at/data/Epikurve.csv",
      "--ciphers",
      "'DEFAULT:!DH'"
    ),
    stdout=TRUE
  ),
  delim = ";",
  locale=locale(
    encoding = "UTF-8",
    date_format = "%d.%m.%Y",
    tz = "CET"
    )
  )

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 2015-12-12
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2015-12-03
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多