我注意到Flask tutorial涉及点子的使用。看起来它只是用来在本地创建一个轮子,这将使服务器上的设置更加容易,但是作为一名Web开发新手,我很好奇:是否有人真的一路将自己的网站上传到PyPI等公共资源库?这样做的意义是什么(与安全有关或与安全有关)?
答案 0 :(得分:2)
否,您应该不将私有Web项目上载到PyPI(Python包索引)! PyPI适用于打算共享的公开发布项目。
为Web项目创建程序包在将其部署到生产服务器时具有优势,但这并不要求程序包在PyPI上可用。 pip
命令行工具可以从其他存储库(包括私有Git或Mercurial或SVN存储库或私有包索引)以及文件系统中查找和安装软件包。
记录:我没有为为我(帮助)开发的最近部署的Flask项目创建软件包而烦恼。这些都是直接从其Github存储库在云托管的硬件和/或Docker容器中投入生产的。 依赖项与pip
一起安装(在所有情况下都是受Pipenv tool的驱动),但是项目代码本身只是直接从结帐加载的。
也就是说,如果那些项目开始使用持续的线下集成,那么在生产中也可以使用打包成转轮的经过测试的代码。将这些轮子发布到私有索引或服务器上;已经有几个项目,甚至有几个SaaS服务已经可以使用,这些服务使您可以管理私有软件包索引。
如果您确实发布到PyPI,则任何人都可以下载您的软件包并分析您网站的工作方式。那样,对于黑帽黑客来说,以这种方式查找和利用您的项目中的安全性问题就变得微不足道了。