即使对于开源项目,如果任何rails项目的源代码都应该被遮挡,该怎么办?

re5*_*5et 11 open-source ruby-on-rails github ruby-on-rails-3

这是一个很难搜索的人.如果我有一个开源的rails web应用程序项目,其源代码是公共托管的,就像在GitHub上一样,如果该应用程序要在公共网站的生产中运行,那么应该隐藏或交换哪些信息?我的假设是,config/initilizers/secret_token.rb,任何认证腌制内容和数据库登录信息等内容在生产中不应与开发中的相同.应该采取哪些其他预防措施来确保生产场地不容易受到摆弄会议或其他我不考虑的其他人的影响?

Sha*_*aun 13

特定于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/*

一般变化

包括这一点只是因为我认为这是一个很好的清单,要记住发布你在生产中也有的开源软件.

  • 删除敏感信息:
    • 密码盐
    • 由代码或种子填充的默认用户凭据
    • 任何外部服务器或服务的身份验证信息
      • 数据库
      • 第三方API
      • 电子会议解决方案
    • 任何可能宣传商业秘密的种子数据
  • 彻底测试代码以获取漏洞利用.如果它们在您的代码中并且您的代码可供公众使用,则人们会找到它们并且知道如何危害您的网站.
  • 清理代码.该代码是您网站的一种宣传形式; 这是代表您的网站/公司的众多事情之一.确保更改变量/函数名称/错误消息/种子数据/等,这些都是出于幽默或挫折而写的,但对公众来说看起来很糟糕.
  • 积极地为项目提供增强功能和错误修复,并响应外部修复/增强请求,甚至为那些自己解决问题的人提取请求.这使项目保持活跃,并有助于宣传角度.
  • 确保您在信用到期时给予信贷.既然您的代码是公开的,那么人们就会知道您是否使用了第三方代码/库.如果此类代码在其许可协议中附带归属条款,请确保您的项目符合这些协议.