HUGO
Menu
GitHub 87548 stars Mastodon

Hugo 配置安全

Hugo 配置安全。

Hugo 的内置安全策略通过允许列表配置,限制对 os/exec、远程通信和类似操作的访问。默认情况下,访问受到限制。如果构建尝试使用不在允许列表中的功能,它将失败,并提供详细消息。

这是默认安全配置:

security:
  enableInlineShortcodes: false
  exec:
    allow:
    - ^(dart-)?sass(-embedded)?$
    - ^go$
    - ^git$
    - ^npx$
    - ^postcss$
    - ^tailwindcss$
    osEnv:
    - '(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\w+|(XDG_CONFIG_)?HOME|USERPROFILE|SSH_AUTH_SOCK|DISPLAY|LANG|SYSTEMDRIVE|PROGRAMDATA)$'
  funcs:
    getenv:
    - ^HUGO_
    - ^CI$
  http:
    mediaTypes: null
    methods:
    - (?i)GET|POST
    urls:
    - .*
[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^(dart-)?sass(-embedded)?$', '^go$', '^git$', '^npx$', '^postcss$', '^tailwindcss$']
    osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\w+|(XDG_CONFIG_)?HOME|USERPROFILE|SSH_AUTH_SOCK|DISPLAY|LANG|SYSTEMDRIVE|PROGRAMDATA)$']
  [security.funcs]
    getenv = ['^HUGO_', '^CI$']
  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']
{
   "security": {
      "enableInlineShortcodes": false,
      "exec": {
         "allow": [
            "^(dart-)?sass(-embedded)?$",
            "^go$",
            "^git$",
            "^npx$",
            "^postcss$",
            "^tailwindcss$"
         ],
         "osEnv": [
            "(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\\w+|(XDG_CONFIG_)?HOME|USERPROFILE|SSH_AUTH_SOCK|DISPLAY|LANG|SYSTEMDRIVE|PROGRAMDATA)$"
         ]
      },
      "funcs": {
         "getenv": [
            "^HUGO_",
            "^CI$"
         ]
      },
      "http": {
         "mediaTypes": null,
         "methods": [
            "(?i)GET|POST"
         ],
         "urls": [
            ".*"
         ]
      }
   }
}
enableInlineShortcodes
(bool) 是否启用 内联短代码。默认值是 false
exec.allow
([]string) 正则表达式 切片,匹配 Hugo 允许运行的外部可执行文件的名称。
exec.osEnv
([]string) 正则表达式 切片,匹配 Hugo 允许访问的操作系统环境变量的名称。
funcs.getenv
([]string) 正则表达式 切片,匹配 Hugo 允许使用 os.Getenv 函数访问的操作系统环境变量的名称。
http.methods
([]string) 正则表达式 切片,匹配 resources.GetRemote 函数允许使用的 HTTP 方法。
http.mediaTypes
([]string) 适用于 resources.GetRemote 函数,正则表达式 切片,匹配 HTTP 响应中 Hugo 信任的 Content-Type,绕过文件内容分析以进行媒体类型检测。
http.urls
([]string) 正则表达式 切片,匹配 resources.GetRemote 函数允许访问的 URL。

将允许列表设置为字符串 none 将完全禁用关联的功能。

您也可以使用环境变量覆盖站点配置。例如,要阻止 resources.GetRemote 访问任何 URL:

export HUGO_SECURITY_HTTP_URLS=none

了解有关 使用环境变量 配置站点的更多信息。


Last updated: January 1, 0001
Improve this page