Node.js v16.18.1 文档


目录

permission 权限#

Permissions can be used to control what system resources the Node.js process has access to or what actions the process can take with those resources. Permissions can also control what modules can be accessed by other modules.

  • Module-based permissions control which files or URLs are available to other modules during application execution. This can be used to control what modules can be accessed by third-party dependencies, for example.

If you find a potential security vulnerability, please refer to our Security Policy.

基于模块的权限#

策略#

中英对照

Node.js 包含了对创建加载代码的策略的实验性支持。

启用#

中英对照

--experimental-policy 标志可用于在加载模块时启用策略特性。



特性#
错误行为#

中英对照

当策略检查失败时,Node.js 默认会抛出错误。 通过在策略清单中定义 “onerror” 字段,可以将错误行为更改为几种可能性之一。 以下值可用于更改行为:

    
    
    完整性检查#

    中英对照

    策略文件必须使用与绝对 URL 关联的浏览器完整性属性兼容的子资源完整性字符串的完整性检查。

    
    

      依赖重定向#

      中英对照

      应用程序可能需要发布模块的补丁版本或阻止模块允许所有模块访问所有其他模块。 可以通过拦截加载希望被替换的模块的尝试来使用重定向。

      
      

      
      

      示例:打补丁的依赖#

      中英对照

      重定向的依赖可以提供适合应用程序的衰减或修改功能。 例如,通过封装原始记录有关函数持续时间的计时数据:

      
      
      范围#

      中英对照

      使用清单的 "scopes" 字段一次设置多个资源的配置。 "scopes" 字段的工作原理是按片段匹配资源。 如果范围或资源包含 "cascade": true,则将在其包含范围内搜索未知说明符。 通过删除特殊方案的片段、保留尾随 "/" 后缀、以及删除查询和哈希片段来递归地减少资源 URL,可以找到级联的包含范围。 这导致 URL 最终减少到其来源。 如果 URL 是非特殊的,则范围将由 URL 的来源定位。 如果没有找到源的范围或在不透明源的情况下,可以使用协议字符串作为范围。 如果没有找到 URL 协议的范围,将使用最终的空字符串 "" 范围。

      示例#

      中英对照

      
      

      给定一个位于 file:///C:/app/bin/main.js 的文件,将按顺序检查以下范围:

                  使用范围的完整性#

                  中英对照

                  在范围上将完整性设置为 true 会将清单中未找到的任何资源的完整性设置为 true

                  
                  
                  使用范围的依赖重定向#

                  中英对照

                  以下示例将允许 ./app/ 内的所有资源访问 fs

                  
                  

                  
                  
                  示例:导入映射模拟#import maps

                  中英对照

                  给定导入映射:

                  
                  
                  
                  

                  返回顶部