我怀疑Bioconductor的安装机制。看起来它只是执行(通过source()
)从HTTP URL的R脚本。这难道不是一种很容易受到中间人攻击的不安全方法吗?我认为他们应该使用HTTPS。如果不是,有人能解释一下为什么目前的方法是可以接受的吗?
是的,你是对的。
通过明文连接加载可执行代码容易受到MITM攻击。
除非通过HTTPS加载,SSL/TLS可以用来加密和验证连接,或者除非代码已经在客户端签名和验证,否则MITM攻击者可以改变输入流并导致任意代码在您的系统上执行。
允许代码通过HTTP GET
请求执行,本质上意味着允许应用程序直接处理用户输入,从而直接影响应用程序的行为。虽然这通常是开发人员想要的(比如从数据库中查询特定信息),但它可能会以您已经提到的方式被利用(例如MITM)。这通常是一个坏主意(但我并不是直接指Bioconductor),因为它打开了系统中可能的XSS/(B)SQLi攻击。
然而,URL - http://bioconductor.org/biocLite.R本质上只是一个放在Web服务器上的文件,从似乎source()
被用来直接下载它。在这个例子中似乎没有任何用户输入,所以不,我不会标记为不安全;然而,你的类比确实是正确的。
注意:这只是指GET请求-例如:http://example.com/artists/artist.php?id=1
。这种不安全性可以在许多HTTP请求中被利用,例如主机头攻击,但一般概念是相同的。应用程序不应该以方式直接处理用户输入。