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了解有關 使用環境變量 配置站點的更多信息。