在我的Rails应用程序上,我允许用户直接将文件上传到S3。我正在通过iframe进行此操作,并且上传操作使用Javascript进行。
最近(例如上个月),Chrome(和Firefox)的安全设置发生了一些变化,因此它不再自动运行此脚本。相反,默认情况下,我的上传脚本的某些部分被阻止。这意味着,除非您单击URL栏右侧出现的防护栏(请参阅附件)并明确允许脚本运行,否则上传将失败。
有谁知道我该如何解决这个问题,这样我的用户就不必每次都单击该盾牌(例如,有没有办法?或者有人知道我可以如何开始识别哪个脚本未经身份验证)。因此我可以避免出现这个问题?
仅供参考,在出现防护罩的同时,我的开发人员控制台中会弹出一个错误:
[blocked] The page at https://www.my_domain.com/seekers/new ran insecure content from http://s3.my_domain.com.s3.amazonaws.com/.
这是否意味着不安全的内容来自http://s3.[my_domain].com.s3.amazonaws.com/?
最佳答案
这是否意味着不安全的内容来自http:// s3。[my_domain] .com.s3.amazonaws.com /?
是。
有谁知道我该如何解决这个问题,这样我的用户就不必每次都单击此盾牌(例如,我有办法吗?
除了从https域提供所有active content之外,别无其他方法。无论如何,允许此类内容都是一个真正的安全漏洞:中间人攻击者可以替换飞行中的未加密数据流,从而允许他在安全站点的上下文中执行任意代码(以窃取用户数据,用户会话或混乱的用户数据)。
还是有人知道我如何才能开始识别哪个脚本是“未经身份验证的”,所以我可以避免这个问题开始出现?
Firefox将向您显示完整的URL,甚至显示启动加载的大致位置(如果从其他脚本启动,则包括行号)。例如。脚本标签:
Blocked loading mixed active content "http://example.org/test.js" @ https://example.org/testblock.html
从另一个脚本注入的脚本(注意行号):
Blocked loading mixed active content "http://example.org/test2.js" @ https://example.org/testblock.html:7