【问题标题】:Sanitise R query from web users清理来自网络用户的 R 查询
【发布时间】:2013-01-21 11:00:59
【问题描述】:

我们正在构建一个 Web 表单,允许(受信任的)用户输入他们自己的 R 查询。他们将对数据库进行统计分析。

问题:

  1. 这有多危险,就其基本形式而言?我是 R 新手,所以 - 他们能做的最糟糕的事情是什么? (假设数据库连接是非特权的)。
  2. 是否有一种简单的方法来清理输入以消除最大的风险?
  3. 是否有可能对输入进行清理以使我们可以向公众开放?例如,我们不能冒 DOS 攻击的风险。

【问题讨论】:

  • 回答问题1。想想list.files()system("rm -f *")
  • 我想我可以以没有任何写权限的用户身份运行 rserve。
  • 这是一个关于这个主题的最新且非常相关的R-devel 线程。尤其看看 Simon Urbanek 在谈话结束时的想法。

标签: database r web-applications sanitization


【解决方案1】:

结合上面的 cmets,以及来自 Josh O'Brien 指向的邮件列表线程中的消息。

  1. 非常。未受保护的 R 查询可以通过 system() 函数执行其进程可以执行的任何操作。
  2. 从列表中,对“system”和“eval”的 grepping 查询很有帮助(但有经验的 R 程序员可以轻松绕过)。 sandboxR 更进一步,增加了额外的安全性。但名单上的专家声称能够轻松绕过这一点。
  3. 到目前为止,它看起来不像。也许它可以通过白名单来完成(即,提供一个正常的函数列表,并阻止其他所有内容)。

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多