Ubuntu Python项目安全加固实践
sudo apt update && sudo apt upgrade,确保Ubuntu系统和内核获得最新安全补丁,修复已知漏洞。pipenv/poetry/virtualenv创建隔离虚拟环境(如python3 -m venv myenv && source myenv/bin/activate),避免系统级Python包冲突;通过pip list --outdated检查过时依赖,使用safety或pip-audit扫描依赖树中的已知漏洞(如CVE),及时升级高风险包。|escape过滤器),避免SQL注入(使用ORM如SQLAlchemy或参数化查询)、XSS攻击;禁止使用eval()、exec()等不安全函数,防止代码注入。Bandit(bandit -r ./src)进行静态代码扫描,检测硬编码密码、不安全SSL配置(如verify=False)、危险函数调用等反模式;将扫描结果接入CI/CD流水线(如GitHub Actions),阻断高危代码合入。.env文件(配合python-dotenv)存储敏感配置(如DATABASE_URL、SECRET_KEY),避免硬编码在源码中;通过load_dotenv()加载环境变量,确保生产配置与代码分离。cryptography库的Fernet对称加密(如cipher_suite = Fernet(key); encrypted_data = cipher_suite.encrypt(b"Sensitive Data"))或RSA非对称加密(如公钥加密、私钥解密);设置.env文件权限为chmod 600,禁止Web目录直接访问配置文件。ufw(Uncomplicated Firewall)限制访问,仅开放必要端口(如sudo ufw allow 22/tcp允许SSH、sudo ufw allow 443/tcp允许HTTPS),执行sudo ufw enable开启防火墙。certbot申请免费SSL证书(sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d yourdomain.com),配置Web服务器(如Nginx)强制HTTPS,防止数据传输过程中被窃取或篡改。sudo useradd -m myappuser && chown -R myappuser:myappuser /path/to/app),遵循“最小权限原则”;限制应用对系统资源的访问(如通过ulimit限制文件描述符数量)。logging库记录应用事件(如登录、数据库操作、异常),日志文件设置chmod 640权限;集成Prometheus+Grafana监控应用性能(如QPS、响应时间),使用fail2ban防范暴力破解(如限制SSH登录尝试次数)。pip-audit扫描依赖漏洞(pip install pip-audit && pip-audit -r requirements.txt)、Bandit扫描代码(bandit -r ./src);配置Dependabot自动检测并创建依赖更新Pull Request,确保依赖库及时修复漏洞。