aw-junaid/golang-web-security

GitHub: aw-junaid/golang-web-security

这是一个Go语言Web安全最佳实践和资源集合,帮助开发者构建安全的Web应用并整合安全工具。

Stars: 11 | Forks: 0

# Go 语言 Web 安全 awjunaid ![GitHub 提交活动](https://img.shields.io/github/commit-activity/t/aw-junaid/golang-web-security) ![GitHub 贡献者](https://img.shields.io/github/contributors/aw-junaid/golang-web-security) ![GitHub 仓库大小](https://img.shields.io/github/repo-size/aw-junaid/golang-web-security) 遵循最佳实践的安全 Go 语言 Web 应用:身份验证、授权、输入验证、CSRF 防护和安全响应头。包含安全开发的示例代码。 ## 联系我:
youtube logo instagram logo twitch logo proton mail logo linkedin logo twitter logo discord logo
## 目录 - [工具](#tools) - [Web 框架加固](#web-framework-hardening) - [安全库](#security-libraries) - [静态代码分析](#static-code-analysis) - [漏洞与安全公告](#vulnerabilities-and-security-advisories) - [公钥基础设施](#private-key-infrastructure) - [教育资料](#educational) - [黑客练习场](#hacking-playgrounds) - [文章、指南与演讲](#articles-guides--talks) - [报告 Bug](#reporting-bugs) - [许可证](#license) # 工具 ## Web 框架加固 *在框架层面保护你的 Go 语言 Web 应用的中间件和实用工具。* - [nosurf](https://github.com/justinas/nosurf) - Go 语言的 CSRF 防护中间件。 - [gorilla/csrf](https://github.com/gorilla/csrf) - 为 Go 语言 Web 应用和服务提供跨站请求伪造(CSRF)防护中间件。 - [gorilla/securecookie](https://github.com/gorilla/securecookie) - 为 Go 语言 Web 应用编码和解码经过认证且可选加密的 cookie 值。 - [secure](https://github.com/unrolled/secure) - Secure 是一个用于 Go 的 HTTP 中间件,可满足你大部分的 Web 应用安全需求(例如 HSTS、CSP 等)。 - [unindexed](https://github.com/jordan-wright/unindexed) - `http.Dir` 的直接替换品,可禁用目录索引。 - [beego-security-headers](https://github.com/gosecguy/beego-security-headers) - Beego 框架过滤器,便于管理安全响应头。 - [echox/sessions](https://github.com/labstack/echo-contrib/tree/master/sessions) - 为 Echo 框架提供的安全 cookie 会话管理。 - [gin-contrib/secure](https://github.com/gin-contrib/secure) - 一个 Gin 中间件,用于快速实现安全响应头。 ## 安全库 *用于实现特定安全控制的通用库。* - [paseto](https://github.com/o1egl/paseto) - 平台无关安全令牌(Platform-Agnostic Security Tokens)的 Go (Golang) 实现。 - [hsts](https://github.com/StalkR/hsts) - Go 语言的 HTTP 严格传输安全(HSTS)库。 - [jwt-go](https://github.com/dgrijalva/jwt-go) - JSON Web Tokens (JWT) 的 Golang 实现。(注意:此库现已归档;建议查看 [golang-jwt/jwt](https://github.com/golang-jwt/jwt))。 - [golang-jwt/jwt](https://github.com/golang-jwt/jwt) - 流行的 `jwt-go` 库的社区维护分支。 - [httprobe](https://github.com/tomnomnom/httprobe) - 接受一个域名列表,探测可工作的 HTTP 和 HTTPS 服务器(可用于侦察)。 - [bcrypt](https://pkg.go.dev/golang.org/x/crypto/bcrypt) - 用于密码哈希的 bcrypt 的官方 Go 实现。 - [scrypt](https://pkg.go.dev/golang.org/x/crypto/scrypt) - scrypt 密钥派生函数的官方 Go 实现。 - [argon2](https://pkg.go.dev/golang.org/x/crypto/argon2) - Argon2 密钥派生函数(用于密码哈希)的官方 Go 实现。 - [acmetool](https://github.com/hlandau/acme) - 一个易于使用的命令行工具,用于从 Let's Encrypt 自动获取 TLS 证书。 ## 静态代码分析 *用于分析源代码以发现潜在安全缺陷的工具。* - [safesql](https://github.com/stripe/safesql) - 用于 Golang 的静态分析工具,可防御 SQL 注入。目前似乎未积极维护。 - [gosec](https://github.com/securego/gosec) - 通过扫描 Go 语言抽象语法树(AST)并匹配一组规则来检查源代码中的安全问题。包含在一个 Docker 容器中 [securego/gosec](https://hub.docker.com/r/securego/gosec)。 - [gometalinter](https://github.com/alecthomas/gometalinter) - 并发运行大部分现有的 Go 语言 linter 并标准化其输出。(考虑使用 [golangci-lint](https://github.com/golangci/golangci-lint) 作为更现代、更快的替代方案)。 - [golangci-lint](https://github.com/golangci-lint/golangci-lint) - 一个快速的 Go 语言 linter 运行器。它并行运行许多 linter,包括 `gosec`,并可集成到你的 CI/CD 管道中。 - [CodeQL](https://securitylab.github.com/tools/codeql) - 一种让你可以像查询数据一样查询代码,以发现漏洞和错误的工具。另见 [LGTM.com](https://lgtm.com) 用于 Pull Request 集成和在云端运行查询。(注意:LGTM.com 已停止服务,但 CodeQL 仍可用)。 - [ChainJacking](https://github.com/Checkmarx/chainjacking) - 查找你的 Go 语言直接 GitHub 依赖项中哪些容易受到 ChainJacking 攻击。 - [Semgrep](https://semgrep.dev/) - 一个快速、开源的静态分析工具,支持 Go,可通过编写自定义规则来查找安全问题。 ## 漏洞与安全公告 *了解 Go 及其生态系统中已知漏洞的信息来源。* - [golang-announce](https://groups.google.com/forum/#!forum/golang-announce) - Go 语言发布邮件列表。特定于语言的安全问题会在此公布。 - [Go 漏洞数据库](https://vuln.go.dev/) - 官方 Go 漏洞数据库,由 Go 团队维护。 - [GoCenter Security](https://jfrog.com/blog/gocenter-reveals-go-module-vulnerabilities-with-xray/) 和 [JFrog VSCode Extension for Go](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-vscode-extension) - 围绕 Go 模块的免费漏洞数据。 - [snyk 漏洞数据库](https://snyk.io/vuln?type=golang) - 商业化但免费的已知库漏洞列表。 - [通用漏洞披露](https://www.cvedetails.com/vulnerability-list/vendor_id-14185/Golang.html) - 已分配 CVE 编号的漏洞。涵盖语言和软件包。 - [国家漏洞数据库](https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&query=golang&search_type=all) - 国家漏洞数据库中的 Golang 已知漏洞。 - [OSV.dev](https://osv.dev/list?q=golang) - 一个针对开源软件的分布式漏洞数据库,对 Go 有良好的支持。 ## 公钥基础设施 *用于管理证书和 PKI 的工具。* - [CloudFlare SSL](https://github.com/cloudflare/cfssl) - CFSSL 是 CloudFlare 的 PKI/TLS 瑞士军刀。它既是用于签名、验证和打包 TLS 证书的命令行工具,也是一个 HTTP API 服务器。 - [step-ca](https://github.com/smallstep/certificates) - 一个私有证书颁发机构(CA)和 ACME 服务器,用于安全的自动化证书管理。 # 教育资料 ## 黑客练习场 *故意存在漏洞的应用,用于在 Go 语言中练习安全测试和漏洞利用。* - [govwa](https://github.com/0c34/govwa) - 一个存在漏洞的 Golang 应用程序,包含当今 Web 应用中最常见的漏洞。 - [Lambhack](https://github.com/wickett/lambhack) - 一个在 AWS Lambda 中运行的、漏洞非常多的无服务器应用。 - [go-dvwa](https://github.com/eze-kiel/go-dvwa) - 流行的“该死的易受攻击 Web 应用”(DVWA)的 Go 版本。 - [gin-vulnerable](https://github.com/bloom42/gin-vulnerable) - 一个使用 Gin 框架构建的、故意存在漏洞的 API,用于教育目的。 ## 文章、指南与演讲 *关于安全 Go 开发的演示、书面指南和示例项目。* - [gosea](https://github.com/komand/gosea) - Go 安全示例应用(GOSEA)。 - [Go - 安全编码实践](https://www.owasp.org/images/2/2b/Owasp-171123063052.pdf) by OWASP - [PDF] Sulhaedir 在 OWASP 雅加达聚会上的演讲。 - [OWASP Go - 安全编码实践](https://github.com/OWASP/Go-SCP) by Checkmarx - Go 编程语言安全编码实践指南。 - [golang 中的内存安全](https://cryptolosophy.org/memory-security-go/) - 如何在内存中安全地处理数据。 - [Go 程序员安全连接指南](https://www.youtube.com/watch?v=kxKLYDLzuHA) - [视频] GopherCon 2018,Liz Rice。 - [golang-tls](https://github.com/denji/golang-tls) - 简单的 Golang HTTPS/TLS 示例。 - [使用 Go 进行黑客活动](https://github.com/parsiya/Hacking-with-Go) - 面向安全专业人员的 Go 语言黑客技术。 - [Go 中的 ReDoS](https://www.checkmarx.com/2018/05/07/redos-go/) by Checkmarx - 深入探讨 Go 语言中的正则表达式拒绝服务(ReDoS)。 - [攻击 Go](https://blog.trailofbits.com/2019/11/07/attacking-go-vr-ttps/):详细介绍针对 Go 项目的安全评估技术。 - [Go 泛型的控制反转](https://www.arp242.net/go-generics.html) - 讨论泛型如何影响代码清晰度及其潜在的安全影响。 - [实用 Go:构建安全的 Web 应用](https://www.youtube.com/watch?v=3F5J0oU7K6Y) - [视频] 关于在 Go 中构建安全 Web 应用实用步骤的演讲。 ## 报告 Bug - [Go 安全政策](https://golang.org/security) - 如何负责任地向 Go 团队报告安全问题。 # 许可证 [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0/)
标签:API密钥检测, CSRF防护, Golang安全, Go语言, Syscall, Web安全, Web开发, 后端开发, 安全专业人员, 安全头, 安全最佳实践, 安全编码, 安全防护, 开发示例, 授权, 日志审计, 程序破解, 编程语言, 网络安全, 蓝队分析, 认证, 输入验证, 隐私保护