- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
引用:Prevent HTTP Basic Authentication from displaying prompt for images
为了保护我的用户生成的内容免受这种潜在的“利用”,我将 crossorigin="anonymous"
添加到所有 [img]
BBCode。
好吧,它在 IE11 中有效:当我测试该漏洞时,图像不再触发身份验证对话框(在禁用缓存和不同 URL 的情况下进行了测试)。
但是在 Chrome 中,这个漏洞不起作用...因为根本没有加载图像。相反,我得到了明显相当常见的错误:
Image from origin 'XXXXX' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'YYYYY' is therefore not allowed access.
也许我的理解是错误的,但我认为该属性的 "anonymous"
值将允许它工作。
我是否遗漏了什么?如果是,还有哪些其他选项可以防止出现此问题?
最佳答案
首先,根据我的理解,你的意思是说图像没有在 IE 中加载。这是完美的!这就是它的工作方式。
其次(也是最后),Chrome 的行为也很完美。
过程/详情:
服务器不向源站点提供凭据(通过将 Access-Control-Allow-Origin 设置为匿名),图像将被污染并限制其使用。
现在,如果你有一个 cross-origin image您可以将其复制到 Canvas 中,但这会“污染” Canvas ,从而阻止您阅读它(因此您不能“窃取”或“下载”图像)。但是,通过使用 CORS,存储图像的服务器可以告诉浏览器允许跨源访问,因此您可以通过 Canvas 访问图像数据。
当 header 不是来自同一来源时,即如果资源是在没有 CORS 请求的情况下获取的(即没有发送 Origin: HTTP header ),并且当它变得无效时,它会被处理为枚举关键字使用匿名。
所以我的猜测是 null 与不存在或无效相同,在这种情况下,它的处理方式类似于匿名。
因此,您看到 Chrome 中的错误意味着完全按照 IE 的方式进行操作。
一些可以提供帮助的引用资料-
虽然不是直接的答案,但是有帮助的链接-
希望对您有所帮助! :) 编码愉快!
关于javascript - crossorigin anonymous 无法加载图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826748/
我的几个 Controller 上有一个 @CrossOrigin 注释。我希望能够在某处设置一个static final 并让它们全部引用它。像这样的东西: public static final
我使用的是 spring boot 1.5.4 并且 @crossorigin 不能使用 JDK 1.7 进行编译它使用 JDK 1.8 进行编译,但我只需要 1.7 错误:(19, 1) java:
在图像和脚本标签中。 我的理解是您可以访问其他域上的脚本和图像。那么什么时候使用这个属性呢? 这是您想限制其他人访问您的脚本和图像的能力吗? 图片: https://developer.mozilla
在图像和脚本标签中。 我的理解是您可以访问其他域上的脚本和图像。那么什么时候使用这个属性呢? 这是您想限制其他人访问您的脚本和图像的能力吗? 图片: https://developer.mozilla
我遇到错误“从来源‘http://localhost:8081/products/getPro’访问位于‘http://localhost:4200’的 XMLHttpRequest 已被 CORS
我正在尝试定义origins允许执行 REST 服务。我正在研究 Java(1.8)、SpringBoot (1.5.9)。我尝试通过两种方式实现 CORS: @CrossOrigin(origins
我正在使用最新的 Spring Boot (1.2.7.RELEASE)。我想使用@CrossOrigin来自包 org.springframework.web.bind.annotation 的注释
我已将 Spring 版本从 3.0.5 升级到 4.2.5。我可以将 @CrossOrigin 注释(Spring 4.2.5 的新增功能)与之前使用过的注释(例如 @POST、@Path、 一起使
是否可以通过环境变量为 @CrossOrigin 注释指定来源?我想这样做,以便我可以将相同的代码库用于 uat/staging/production。我希望我的 uat/staging 环境可以通过
引用:Prevent HTTP Basic Authentication from displaying prompt for images 为了保护我的用户生成的内容免受这种潜在的“利用”,我将 c
上下文:To quote the Mozilla documentation: Normal script tags will pass minimal information to the wind
我在 react 中使用 cropperjs: 这不适用于跨源图像。但是,当我将“crossOrigin”更改为“crossorigin”时,它将起作用。但我收到了警告: Warning: Unkn
使用特定交叉原点和放置 * 有什么区别? 例如 @CrossOrigin(origins = localhost:8080) or @CrossOrigin(origins = "*") 如果是 *
Spring @CrossOrigin 注释不适用于 DELETE 方法。 示例代码(在 Groovy 中): @CrossOrigin @RestController @RequestMapping
我的 AWS S3 中存储了 MP4 视频文件和 WEBVTT 文件。AWS S3 批量配置到我的子域,可以通过以下方式访问它:http://clip.mydomain.com/bulkname/vi
我尝试将 integrity 和 crossorigin 属性添加到上面的链接,但在 Visual Studio 2015 中都显示为链接标记的无效属性。解决方案是什么。 最佳答案 似乎 Visual
当我从命令行使用 maven 编译任何包含 Spring @org.springframework.web.bind.annotation.CrossOrigin 注释的类时,它编译得很好。但是,当我
我正在尝试将 HTML5 视频播放器集成到我的应用程序中。我的视频源和标题(用于轨道标签)来自不同的域。 当我使用 ... 以上所有代码在 Chrome 不安全模式(禁用网络安全
问题发生在 chrome 浏览器桌面上。尝试将轨道元素添加到视频时出现以下错误: http://jsfiddle.net/itayKinnrot/6Up5t/1/ 当我
我想了解如何为 img 标签使用 crossorigin 属性。我找不到一个很好的例子(我找到的关于启用 CORS 的图像的例子是用 JavaScript 代码解释的,因此我看不到带有 img 标签的
我是一名优秀的程序员,十分优秀!