mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-10-23 03:27:43 +09:00
fix(favicon): make the per-install tint actually cover the fingerprint URLs
The install-time tint only recolored favicon.svg, but the page also shipped a fixed raster favicon.ico + .png — and favicon-hash scanners hash /favicon.ico, which was identical across every install. So the "car-paint" tint didn't change what those tools cluster on. - index.html links only the SVG now (drop the raster <link>s). - Remove the unused favicon-16x16/32x32.png. - install.sh: after tinting favicon.svg, copy it over favicon.ico too, so a blind /favicon.ico fetch also returns the per-install color instead of a fixed icon. (SVG bytes under an .ico name — browsers use the linked SVG; this only affects what a scanner hashes at that URL.) Still obscurity/defense-in-depth, not a real gate — but now it does what it says. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
3954680c87
commit
8ee33ef2c6
4 files changed
+7
-3
No files matched your search
+2
-3
@@ -3,10 +3,9 @@
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<!-- Single SVG favicon so the per-install tint (install.sh randomize_favicon)
|
||||
is the only mark served; no fixed raster icon to fingerprint-cluster on. -->
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
||||
<meta name="description" content="Control Panel" />
|
||||
<title>Control Panel</title>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 678 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1129,6 +1129,11 @@ randomize_favicon() {
|
||||
if sed -i -E "s|(<rect width=\"32\" height=\"32\" rx=\"7\" fill=\")[^\"]+(\")|\1hsl(${h}, ${s}%, ${l}%)\2|" "$fav" 2>/dev/null; then
|
||||
good "Favicon tint set to hsl(${h}, ${s}%, ${l}%)"
|
||||
fi
|
||||
# Also serve the tinted mark at /favicon.ico so a blind favicon-hash fetch
|
||||
# there varies per install too, instead of a fixed cross-install icon. It's
|
||||
# SVG bytes under an .ico name — browsers use the linked SVG anyway; this is
|
||||
# only about what a scanner hashes at that URL.
|
||||
cp "$fav" "$INSTALL_DIR/frontend/dist/favicon.ico" 2>/dev/null || true
|
||||
}
|
||||
|
||||
build_frontend() {
|
||||
|
||||
Reference in new issue
Block a user