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了解有关 使用环境变量 配置站点的更多信息。