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