系统级安全强化(Linux基础配置)
/etc/passwd文件,确认仅必要账户拥有root权限(UID=0),移除或锁定冗余root账户(如passwd -l <用户名>)。/etc/login.defs文件,设置PASS_MIN_LEN 10等参数,强制密码包含大小写字母、数字和特殊字符(长度≥10位);检查并清理空口令账户(awk -F ":" '($2 == "") {print $1}' /etc/shadow)。chattr +i命令为/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow添加不可修改属性,防止未授权篡改。/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,仅允许wheel组用户使用su切换至root;或通过usermod -G wheel <用户名>将授权用户加入wheel组。/etc/profile文件,添加TMOUT=300(300秒无操作自动注销),降低root账户长期空闲风险。Golang环境特有安全配置
/etc/profile或用户级配置文件(如~/.bashrc),添加GOROOT(Go安装路径)、GOPATH(工作目录)、PATH(包含Go二进制路径),并执行source命令使配置生效。setenforce 1开启SELinux强制访问控制(MAC),并通过semanage、audit2allow等工具配置针对性策略,限制Golang程序对系统资源的访问权限(如仅允许读写特定目录)。ulimit命令限制Golang程序的资源消耗,例如ulimit -v 204800(最大虚拟内存200MB)、ulimit -t 300(CPU时间300秒),防止程序因资源耗尽导致系统崩溃或被恶意利用。govulncheck(检查已知漏洞)、gosec(扫描安全问题,如SQL注入、XSS)、go vet(检查代码规范性),定期更新Golang工具链以获取最新安全修复。应用级安全最佳实践
html/template或text/template包自动转义HTML输出(如{{.Username}}会转义特殊字符),避免恶意脚本执行。database/sql包的QueryRow/Exec方法配合?占位符),避免直接拼接SQL语句;对数据库密码等敏感信息进行加密存储(如使用bcrypt哈希)。gorilla/sessions),设置会话cookie的HttpOnly(防止XSS窃取)、Secure(仅HTTPS传输)、SameSite(限制跨站请求)属性;定期更换会话密钥,防止会话固定攻击。crypto/tls包实现HTTPS通信(如http.ListenAndServeTLS(":443", certFile, keyFile, nil));禁用过时协议(如SSLv2、SSLv3)和弱加密算法(如RC4),确保数据传输安全。Content-Security-Policy限制浏览器加载的资源(如default-src 'self'; script-src 'self' cdn.example.com),防止跨站脚本攻击(XSS)和数据注入攻击。依赖与持续安全管理
go mod管理依赖,定期运行go mod tidy清理无用依赖;通过govulncheck或gosec扫描依赖项,及时替换存在已知漏洞的库(如旧版本crypto包)。sudo yum update golang)和第三方依赖,及时修复安全漏洞;订阅Golang安全公告(如邮件列表、GitHub Releases),第一时间响应高危漏洞。log包记录请求信息、错误日志),包括用户操作、系统事件、异常情况;将日志发送至集中式监控系统(如ELK Stack、Prometheus),设置告警规则(如频繁的登录失败、异常资源消耗),及时发现并响应安全事件。