这似乎是一个显而易见的问题,但我看起来又高又低,找不到答案。情况如下:
问题是,我可以找到关于安全性如何与JNLP一起工作的零信息。如果授予任何匿名读取权限,那么世界上任何人都可以下载slave.jar并访问我服务器上(易于猜测)URL的jnlp文件,并作为从属连接。
我发现如果我撤销所有匿名访问,jnlp文件将被阻止,但slave.jar仍然可以访问。
在jnlp文件中似乎没有什么特别安全的,除了一个长十六进制数。这个设置是安全还是还有其他我需要做的事情?
如果访问者可以在没有登录的情况下看到最近的版本,那将是很好的,但是如果我向匿名者授予读取权限,那么任何人都可以访问jnlp文件。
答案 0 :(得分:3)
如果授予了任何匿名读取权限,那么世界上的任何人都可以下载slave.jar并访问我服务器上(易于猜测)URL上的jnlp文件,并作为从属连接。
事实证明,这实际上是Jenkins的一个重要安全漏洞:
https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2013-01-04
在回答我的问题时,似乎最好的方法是禁用所有匿名读访问。
答案 1 :(得分:1)
从this jenkins bug上的评论看来,在修复the security vulnerability的过程中,此行为(允许具有读取权限的任何人查看jnlp文件)似乎已被更改,您现在可以限制访问jnlp文件给特定用户。
我找不到关于当前行为的任何文档,但是可以通过
获得一些线索步骤2.将给出“403禁止”响应,其中包含类似
的内容Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:
Permission you need to have (but didn't): hudson.model.Computer.Connect
... which is implied by: hudson.model.Computer.Disconnect
... which is implied by: hudson.model.Hudson.Administer
-->
响应还包含javascript重定向,因此您需要使用wget或其他一些非启用javascript的方法才能看到它。
通过反复试验,我发现“hudson.model.Computer.Connect”似乎映射到Jenkins UI中的“Slave Connect”权限。