本以为能正常访问博客就是结束,没想到那仅仅是开始。

快速加载、安全访问一直是我的目标。为此我设定了4G网络秒加载,防御常见网络攻击的目标。

为了达成这个目标,我对Caddy进行了如下设置。

Caddy站点配置

yblgzbbl.cn {
    encode zstd
 
    file_server
    tls *****.pem *****.key
    php_fastcgi unix//run/php/php-fpm.sock
 
 
    #Cache
    @cachedFiles {
        path *.webp *.jpg *.jpeg *.png *.gif *.ico *.js *.css *.woff *.woff2 *.ttf
    }
    header @cachedFiles Cache-Control "public, max-age=604800, must-revalidate"
 
    #Protect WP Directories
    @disallowed {
        path /xmlrpc.php
        path *.sql
        path "/wp-content/uploads/*.php"
    }
    rewrite @disallowed '/index.php'
 
    # HTTP Security
    header {
        Strict-Transport-Security max-age=15552000 # enable HSTS
        X-XSS-Protection "1; mode=block"
        X-Content-Type-Options "nosniff"
        X-Frame-Options "DENY"
    }
}

Caddyfile文件

解析

速度提升

压缩以及缓存设置

encode zstd代码启用压缩,通过@cachedFiles定义需要缓存的内容,然后自定义header@cachedFiles Cache-Control "public, max-age=604800, must-revalidate"启用缓存。

安全性设置

SSL安全

亚数信息提供了一个网站,检测部署SSL/TLS的服务是否符合行业最佳实践,PCI DSS支付卡行业安全标准,Apple ATS规范。

使用Caddy的默认设置,评级可以达到A,要想达到最高的评级A+,则还需要一些其他的配置。

其实只需要添加一个HSTS头,就可以从A达到A+

header Strict-Transport-Security max-age=15552000

其他安全配置

此外,可以通过自定义头来防止一些常见网络攻击。

header {
	# disable FLoC tracking
	Permissions-Policy interest-cohort=()


	# disable clients from sniffing the media type
	X-Content-Type-Options nosniff

	# clickjacking protection
	X-Frame-Options DENY

        # XSS
        X-XSS-Protection "1; mode=block"
}

一个鸟人罢了