GitHub - TypeError/secure:用于向 Django、Flask、FastAPI 等添加安全头(CSP、HSTS 等)的轻量级现代 Python 库。安全默认设置或完全可定制。

这是一个名为secure.py的 Python 库,用于为 Python Web 应用程序添加安全头,保护应用程序免受常见漏洞的攻击。它支持多种 Python Web 框架,具有以下特点:

  • 介绍:在当今的 Web 环境中,安全至关重要。secure.py是一个轻量级的 Python 库,旨在轻松地为 Web 应用程序添加安全头。它提供了统一的 API,可与 Django、Flask、FastAPI 等流行框架一起使用,增强应用程序的安全态势。
  • 为什么使用 secure.py

    • 应用必要的安全头,如 CSP、HSTS 等,无需太多努力。
    • 不同框架的统一 API。
    • 可自定义的安全默认值,开箱即安全,可根据需要进行定制。
    • 易于集成,与 Python 最常用的框架兼容。
    • 现代 Pythonic 设计,利用 Python 3.10+ 的特性,使代码更清晰、更高效。
  • 支持的框架:支持多种 Python Web 框架,包括 aiohttp、Bottle、CherryPy、Django、Falcon、FastAPI、Flask、Masonite、Morepath、Pyramid、Quart、Responder、Sanic、Starlette、Tornado 和 TurboGears,并提供了相应的集成指南。
  • 功能

    • 安全头:自动应用诸如Strict-Transport-SecurityX-Frame-Options等头。
    • 可自定义策略:使用方法链接灵活构建自己的安全策略。
    • 框架集成:与各种框架兼容,确保跨兼容性。
    • 无外部依赖:轻量级,易于在任何项目中包含。
    • 易于使用:只需几行代码即可集成安全头。
    • 异步支持:对 FastAPI 和 Starlette 等现代框架的异步支持。
    • 增强的类型提示:完整的类型注释,提供更好的开发体验。
    • 归因于可信来源:实施 MDN 和 OWASP 的建议。
  • 要求

    • Python 3.10 或更高版本,利用 Python 3.10 和 3.11 中的现代特性,如联合类型运算符、结构模式匹配、改进的类型提示和注释、cached_property等。如果使用较旧版本的 Python(3.6 到 3.9),请使用 0.3.0 版本的库。
    • 无外部依赖,仅依赖 Python 标准库。
  • 安装:可以使用 pip、pipenv 或 poetry 进行安装。
  • 入门

    • 同步使用:导入secure库,初始化安全头并将其应用于框架响应对象。
    • 异步使用:对于支持异步操作的框架,如 FastAPI 和 Starlette,使用异步方法。
    • 示例用法:创建Secure实例并将默认安全头应用于响应对象。
  • 默认安全头:默认情况下,with_default_headers()应用以下头:Cache-Control: no-storeCross-Origin-Opener-Policy: same-originContent-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'Strict-Transport-Security: max-age=31536000Permissions-Policy: geolocation=(), microphone=(), camera=()Referrer-Policy: strict-origin-when-cross-originServer:X-Content-Type-Options: nosniff
  • 策略生成器:可以轻松自定义Content-Security-PolicyPermissions-Policy等头。
  • 框架示例

    • FastAPI:在 FastAPI 应用中使用中间件添加安全头。
    • Flask:在 Flask 应用中使用after_request装饰器添加安全头。
  • 文档:有关更多详细信息,包括高级配置和集成示例,请访问完整文档
  • 归因:该库实现了来自可信来源的安全建议,如 MDN Web Docs 和 OWASP Secure Headers Project,并在源代码中适当添加了归因注释。
  • 资源:提供了与安全相关的资源链接,如 OWASP - Secure Headers Project、Mozilla Web Security Guidelines、MDN Web Docs: Security Headers、web.dev: Security Best Practices 和 The World Wide Web Consortium (W3C)。
  • 许可证:项目根据MIT 许可证授权。
  • 贡献:欢迎贡献,可在GitHub上打开问题或提交拉取请求。
  • 变更日志:有关详细的更改列表,请参考CHANGELOG
  • 致谢:感谢 MDN Web Docs 和 OWASP Secure Headers Project 的贡献者提供的宝贵资源和指南,使网络更安全。
阅读 23
0 条评论