- SecurityHeaders 中间件生成随机 nonce,注入 context - BuildPageData/BuildAdminPageData 将 CSPNonce 传递给模板 - 所有 19 个模板文件 <script> 标签添加 nonce 属性 - 移除所有内联事件处理(onclick/onerror),改用事件监听 - 移除所有 javascript:void(0) 链接,改用 # 号 + preventDefault - utils.js 添加全局 avatar 图片加载失败回退处理 - common.js 登出按钮添加 preventDefault - audit.js 关闭弹窗按钮改用事件监听
25 lines
1.0 KiB
HTML
25 lines
1.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
{{if .CSRFToken}}<meta name="csrf-token" content="{{.CSRFToken}}">{{end}}
|
|
{{if .OgTitle}}
|
|
<meta property="og:title" content="{{.OgTitle}}">
|
|
<meta property="og:type" content="article">
|
|
<meta property="og:site_name" content="MetaLab">
|
|
{{if .OgDescription}}<meta property="og:description" content="{{.OgDescription}}">{{end}}
|
|
{{if .OgImage}}<meta property="og:image" content="{{.OgImage}}">{{end}}
|
|
{{if .OgURL}}<meta property="og:url" content="{{.OgURL}}">{{end}}
|
|
{{end}}
|
|
<title>{{.Title}} - MetaLab</title>
|
|
<link rel="stylesheet" href="/static/css/common.css?v={{assetV "/static/css/common.css"}}">
|
|
{{if .ExtraCSS}}
|
|
<link rel="stylesheet" href="{{.ExtraCSS}}?v={{assetV .ExtraCSS}}">
|
|
{{end}}
|
|
{{if .ExtraCSS2}}
|
|
<link rel="stylesheet" href="{{.ExtraCSS2}}?v={{assetV .ExtraCSS2}}">
|
|
{{end}}
|
|
<script src="/shared/static/js/utils.js?v={{assetV "/shared/static/js/utils.js"}}" nonce="{{.CSPNonce}}"></script>
|
|
</head>
|