Generate SRI integrity hashes into html

to prevent loading of scripts which were modified on the network
transport

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2018-05-05 19:08:02 +02:00
parent a7c4c584cc
commit 7aaf7a7f53
No known key found for this signature in database
GPG key ID: DC2729FDD34BE99E
5 changed files with 163 additions and 139 deletions

22
tplFuncs.go Normal file
View file

@ -0,0 +1,22 @@
package main
import (
"crypto/sha512"
"encoding/base64"
"path"
"text/template"
)
var tplFuncs = template.FuncMap{
"SRIHash": assetSRIHash,
}
func assetSRIHash(assetName string) string {
data := MustAsset(path.Join("frontend", assetName))
h := sha512.New384()
h.Write(data)
sum := h.Sum(nil)
return "sha384-" + base64.StdEncoding.EncodeToString(sum)
}