欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Web 安全深度解析:CSRF 攻击与 SameSite Cookie 防护实战

发表于:|最后更新:|分类:Web安全|阅读:1701 次

跨站请求伪造(Cross-Site Request Forgery, CSRF) 攻击利用了浏览器在发起跨站请求时会自动携带用户凭证(如 Session Cookie)的特性,冒充受害用户执行未经授权的操作。

一、SameSite 属性与 Anti-CSRF Token 双重校验

http
Set-Cookie: session_id=xyz123; Path=/; Secure; HttpOnly; SameSite=Strict
go
// Go 中间件验证 Anti-CSRF Token
func CSRFMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        if r.Method == "POST" || r.Method == "DELETE" {
            token := r.Header.Get("X-CSRF-Token")
            if !validateToken(token, r) {
                http.Error(w, "Forbidden: Invalid CSRF Token", http.StatusForbidden)
                return
            }
        }
        next.ServeHTTP(w, r)
    })
}