这是一个很难寻找的东西。如果我有一个开源 Rails Web 应用程序项目,其源代码是公开托管的(例如在 GitHub 上),如果该应用程序要在公共网站上的生产环境中运行,则应隐藏或交换哪些信息?我的假设是,诸如 config/initilizers/secret_token.rb 之类的内容、任何身份验证加盐内容以及数据库登录信息在生产中不应与开发中相同。还应该采取哪些其他预防措施来确保生产站点不会受到人们摆弄会话或其他我未考虑的事情的影响?
Rails 特定的敏感信息源
清除以下敏感信息:
config/environments/*.rb
config/initializers/cookie_verification_secret.rb
config/initializers/secret_token.rb
config/initializers/session_store.rb
- 添加以支持第三方库的任何文件,例如
config/memcached.yml
config/database.yml
db/seeds.rb
- 中的任何耙子任务
lib/tasks
.
test/fixtures/*
一般变化
包括这一点只是因为我认为这是发布您也在生产中使用的开源软件时需要记住的一个很好的清单。
- Remove sensitive information:
- 密码盐
- 由代码或种子填充的默认用户凭据
- authentication information to any external server or service
- 任何可能公开商业秘密的种子数据
- 彻底测试代码是否存在漏洞。如果它们存在于您的代码中并且您的代码可供公众使用,人们就会找到它们并知道如何危害您的网站。
- 清理代码。该代码是您网站的一种宣传形式;这是代表您的网站/公司的众多事物之一。确保您更改了出于幽默或沮丧而编写的变量/函数名称/错误消息/种子数据/等,但这对公众来说看起来很糟糕。
- 积极为项目贡献您的增强功能和错误修复,并响应外部的修复/增强请求,甚至为那些自己解决了问题的人提出拉取请求。这可以保持项目的活跃度,也有助于宣传。
- 确保在应得的信用处给予信用。现在您的代码是公开的,人们会知道您是否使用了第三方代码/库。如果此类代码的许可协议中附带了归属条款,请确保您的项目遵守这些协议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)