Menambahkan Security Headers di Traefik

Di Traefik Anda dapat menambahkan Header terkait keamanan header seperti HSTS headers, Browser XSS filter, dll. Ini dapat dikeloa dengan cara menambahkan beberapa label saat akan menjalankan container.

Pastikan traefik sudah berjalan.

Selanjutnya jalankan container dengan menambahkan label seperti berikut

docker run -dit --name web1 --network public -l web1 \
--label 'traefik.enable=true' \
--label 'traefik.http.routers.web1.rule=Host(`example.com`)' \
--label 'traefik.http.routers.web1.entrypoints=web' \
--label 'traefik.http.routers.web1.middlewares=xss' \
--label 'traefik.http.services.web1.loadbalancer.server.port=80' \
--label 'traefik.http.middlewares.xss.headers.browserxssfilter=true' \
--label 'traefik.http.middlewares.xss.headers.contenttypenosniff=true' \
--label 'traefik.http.middlewares.xss.headers.customframeoptionsvalue=SAMEORIGIN' \
--label 'traefik.http.middlewares.xss.headers.referrerpolicy=same-origin' \
--label 'traefik.http.middlewares.xss.headers.contentsecuritypolicy=frame-ancestors http://example.com' \
nginx

Lalu cek header dengan curl

curl -I http://example.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 615
Content-Security-Policy: frame-ancestors http://example.com
Content-Type: text/html
Date: Mon, 10 Jul 2023 16:58:02 GMT
Etag: "64230162-267"
Last-Modified: Tue, 28 Mar 2023 15:01:54 GMT
Referrer-Policy: same-origin
Server: nginx/1.23.4
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block