在 webgl 上读取像素时出现 Dom 安全错误 18

发布于 2024-11-18 08:45:09 字数 343 浏览 5 评论 0原文

当我尝试在 webgl 上进行选择时,我使用帧缓冲区并读取像素颜色来执行此操作。当函数 gl.readpixels 运行时,它会抛出 (SECURITY_ERR : Dom Exception 18) 。

屏幕截图 http://imageshack.us/f/94/readpxielerror.jpg/

我不知道如何解决这个问题。

所以请帮助我!

When I’m trying to do picking on webgl, I use the framebuffer and read the pixel color to do this. And it throw the (SECURITY_ERR : Dom Exception 18) while the function gl.readpixels run.

screenshot
http://imageshack.us/f/94/readpxielerror.jpg/

I don’t know how to solve this problem.

So help me please !!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

为人所爱 2024-11-25 08:45:09

将图像托管在提供页面的同一主机中,当您使用跨域资源进行渲染时,webgl 将画布标记为受污染。有同样的问题并且解决了它。

编辑:

稍微扩展一下,当前的 WebGL 实现将其作为一种机制,不允许恶意页面利用驱动程序来控制用户工作站。请记住,您为 readPixels 调用传递了一个数组,这可能会被用于缓冲区溢出攻击,从而使 WebGL 成为潜在的安全风险。

第二次编辑:

目前正在进行工作以支持 canvas 和 webgl 中更好的跨源图像,您可以检查它 此处

Host the image in the same host were your page is served, webgl marks the canvas as tainted when you use a cross-domain resource for rendering. Had the same problem and that solved it.

Edit:

To expand a little bit, current WebGL implementations do this as a mechanism to not allow malign pages to exploit drivers to take control over a user workstation. Remember that you pass an array for the readPixels call and this could be used for a buffer overflow attack rendering WebGL as a potential security risk.

2nd Edit:

There's currently work in progress to support even better cross-origin images in canvas and webgl, you can check it here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文