feat: add anti-tamper guard for standard template tuning page

This commit is contained in:
tian 2026-07-27 18:27:21 +08:00
parent b2cb0b9a67
commit 8d8daf1b7f
3 changed files with 15 additions and 0 deletions

View File

@ -3418,6 +3418,12 @@ func (u *UI) pageTemplateSettings(w http.ResponseWriter, r *http.Request) {
return
}
if data.AssetTemplate.ReadOnly {
data.Error = "这是标准模板,不能直接调整参数。请先在控制台部署一次,系统会自动复制为用户模板。"
u.render(w, r, "template_settings", data)
return
}
if items, err := u.preview.GetTuningItems(name); err == nil {
data.TuningItems = items
// Group items
@ -3445,6 +3451,12 @@ func (u *UI) actionTemplateSettings(w http.ResponseWriter, r *http.Request) {
action := r.FormValue("action")
// Prevent modifying standard templates
if strings.HasPrefix(name, "std_") {
http.Error(w, "标准模板不允许修改", http.StatusForbidden)
return
}
// Collect tuning values from form
values := map[string]float64{}
for key, vals := range r.Form {

View File

@ -1,5 +1,8 @@
{{define "template_settings"}}
{{template "asset_tabs" .}}
{{if .Error}}
<div class="card error">{{.Error}}</div>
{{end}}
{{if .TuningItems}}
<div class="card">
<div class="section-title">

Binary file not shown.