zoukankan      html  css  js  c++  java
  • 第四章 安全 Security

    第四章 安全 Security


    4.1 资源限制 Resource Restrictions

    WebGL的资源如纹理(textures)和VBO(vertex buffer objects)对象必须总是包括了初始值,即使用户没有创建它们没有指定任何值.创建一个没有初始数据的资源通常用来给纹理和VBO对象保留一块空间,这块内存空间随后可以通过调用texSubImage或bufferSubData方法进行修改.如果调用这些方法时没有指定初始值,则WebGL实现时应该当将它们设置为0.深度缓冲(depth renderbuffer)必须清空成默认值1.0,例如,这可能要求创建一块值为0,大小与请求的VBO对象相等的内存区域,这样它就可以正常初始化了.基于同样的道理,所有其它类型的数据,不论是arrayBuffers还是DOM对象如images,要加载到纹理或VBO对象里,都要求初始化(All other forms of loading data into a texture or VBO involve either ArrayBuffers or DOM objects such as images, and are therefore already required to be initialized).

    当通过调用shaders的drawElement或drawArrays方法得到WebGL资源时,WebGL实现需保证shaders没有越界或未初始化,点击这里Enabled Vertex Attributes and Range Checking查看那些限制必须被webGL实现.

    4.2 来源限制 Origin Restrictions

    为了阻止(隐私)信息泄漏,HTML5包含了一个origin-clean标志(See HTML5, section 4.8.11.3, "Security with canvas elements".)

    针对webGL设备对象,这个标志在以下几种情况下必须设置为false:

    1,当HTMLImageElement或HTMLVideoElement对象的来源与包含html canvas对象的页面的来源不同时,在这两个对象上调用txtImage2D方法时

    2,当HTMLCanvasElement的origin-clean标志为false,在其对象上调用texImage2D方法时

    当canvas中2D context对象的origin-clean标志设置为false时,无论任何时候调用readPixels方法,哪怕使用正确的其它参数,都应该抛出一个SECURITY_ERR 异常

    4.3 支持GLSL构造 Supported GLSL Constructs

    webGL的shader实现必须遵守OpenGL ES Shading Language规范,并且不允许扩展在第四节,第五节附录A中要求的minimum functionality.特别强调,一个引用了(OpenGL)状态变量的shader或者那些在其它版本的GLSL中已经在用的函数(比如在桌面OpenGL中发现的那些函数)必须被禁止加载

    除了之前规范中保留的那些标识符外,新增以"webgl_"和"_webgl_"开关的关键字保留供webGL用.以这两个为前缀的命名的函数,变量,结构名字,或者结构字段名字的shader必须被禁止加载

    4.4 Defense Against Denial of Services 拒绝服务防护

    4.5 Out-of-Range Array Accesses 数组越界访问

    Shaders必须禁止对在数组界外的对象的读写操作,

  • 相关阅读:
    google浏览器高清壁纸保存
    vmworkstation安装unbuntu server 网络配置:NAT模式
    python量化交易相关资料
    Oracle VM VirtualBox启动后莫名奇妙的报错
    oracle RAC 跨网段客户端访问 报ORA-12170
    odoo开发 相关知识点
    C#.ToString()格式大全
    flex简单参考实例
    NPOI读写Excel
    C# Stream 和 byte[] 之间的转换(文件流的应用)
  • 原文地址:https://www.cnblogs.com/kkun/p/2124941.html
Copyright © 2011-2022 走看看