yosignals
(John Carroll)
1
大家好,我很喜欢这个平台。我想请教一下如何控制远程内容的位置。
例如,我想禁止加载不受信任的资源。举个例子,我可以用一张 JPG 图片:,这张其实并不是真正的 JPG,但所有查看者都会泄露他们的 IP 地址,更重要的是,还会泄露他们的用户代理信息。
我希望只允许上传并渲染的内容,但允许例外,比如 YouTube 或一些常见的在线存储平台。
当前的 Discourse 版本是否支持这样的功能?我将把这个论坛用于网络取证工作,如果能够通过某种方式修复像这样的 PII(个人身份信息)泄露问题,无论是出现在帖子中还是个人资料内容里,那它将非常符合我的需求。
谢谢!
我使用了 Canary Tokens 来“伪造”一张 JPEG 图片:http://canarytokens.com/,并将其封装在 Markdown 图片语法中。
sam
(Sam Saffron)
2
我们通过下载远程内容的副本来避免热链接,因此用户能够热链接 JPG 的时间窗口非常短。
不过,我并不反对在 Discourse 上提供某种选项,允许我们在下载热链接图片的过程中,用“正在下载图片”的提示来替换图片。
yosignals
(John Carroll)
3
嘿 Sam,感谢你的时间。我可以在日志中看到 Ruby 的用户代理,但如果有人查看我的资料,我确实能获取到查看者的 IP 地址。也许获取/中间件并不是全局适用于应用的所有区域?
我想内容安全策略(Content Security Policy)或许能短期解决这个问题,但与此同时,在他们弄清楚状况之前,用户体验会很糟糕,哈哈。
感谢你的时间和对此事的看法!
sam
(Sam Saffron)
4
你的意思是你在“关于我”部分直接链接了一张图片吗?
我们显然不应该允许这种做法,我认为这是一个漏洞。
yosignals
(John Carroll)
7
嘿,Sam,没错,这种情况下我用 Markdown 命令 ![]() 来引用远程图片——我还不算资深用户,所以不确定是否还有其他方式支持引用远程内容。不过你可以试试看,我想我是把它放在个人资料的“关于我”区域了。
我觉得“新用户不能 X"的限制在这里应该不适用。