首页 / 知识
关于ruby on rails:如何保护database.yml?
2023-04-12 15:33:00

How Do You Secure database.yml?在Ruby on Rails应用程序中,database.yml是存储数据库凭证的纯文本文件。
当我部署Rails应用程序时,我的Capistrano中有一个部署后回调
我解决此问题的方法是将数据库密码放在仅对我以其身份运行我的应用程序的用户具有读取权限的文件中。然后,在database.yml中,我使用ERB读取文件:
工作请客。 您还需要确保SSH系统安全可靠,以防止人们以Capistrano僵尸程序身份登录。我建议限制对受密码保护的密钥对的访问。 加密服务器上的.yml文件是没有用的,因为您必须给bot密钥,该密钥将被存储。 。 。在同一台服务器上。在您的计算机上对其进行加密可能是一个好主意。 Capistrano可以在发送前将其解密。 看看这个github解决方案:https://github.com/NUBIC/bcdatabase。 bcdatabase提供了一个加密存储,其中密码可以与yaml文件分开保存。
即使您保护了database.yml文件,如果人们可以更改应用程序的代码,他们仍然可以使用相同的凭据进行编写。 另一种查看方式是:Web应用程序是否需要大量访问数据库。如果为true,则降低权限。给应用程序足够的权限。这样,攻击者就只能执行Web应用程序所能做的事情。 如果您非常担心yml文件的安全性,那么我不得不问:它存储在版本控制中吗?如果是这样,那就是攻击者可以达到的另一点。如果您要通过非SSL签出/签入,则有人可能会拦截它。 同样,使用某些版本控制(例如,svn,例如,svn),即使将其删除,它仍会保留在历史记录中。因此,即使您过去曾经删除过它,更改密码仍然是一个好主意。 |
最新内容
相关内容
python如何连接mysql数据库
python如何连接mysql数据库,培训,数据,项目,一致,流程,数据库,参数,结果,接口,语句,python数据库接口支持非常多的数据库,你可以选择适合你项python定时修改数据库
python定时修改数据库,时间,服务,培训,单位,代码,标准,线程,操作,时间差,进程,1.传入执行改库操作的时间update_time,用update_time和当前时间python怎么链接数据库
python怎么链接数据库,培训,数据,一致,流程,项目,数据库,接口,参数,结果,语句,python数据库接口支持非常多的数据库,你可以选择适合你项目的python可以搭配什么数据库
python可以搭配什么数据库,数据,网站,软件,培训,产品,网络,公司,环境,数据库,关系,python支持多种数据库,下面介绍一下MySQL和MongoDb。MySQLpython如何操作mysql数据库
python如何操作mysql数据库,培训,标准,项目,密码,数据库,接口,表字,操作,用户,机子,Python标准数据库接口为PythonDB-API,PythonDB-API为开发python新手必看之文本文件的输入输
python新手必看之文本文件的输入输出,培训,标准,数据,文件,对象,输入输出,新手,模式,功能,内容,Python具有基本的文本文件读写功能。Python的多种形式的Delphi应用程序和对话框
多种形式的Delphi应用程序和对话框,多种形式的Delphi应用程序和对话框,视图,所见即所得,应用程序,文档,Multiple form Delphi applic关于sql server:批处理文件以”
关于sql server:批处理文件以脚本数据库,关于sql server:批处理文件以脚本数据库,向导,脚本,文件,数据库,Batch file to “Script” a数据库字段的标准长度列表
数据库字段的标准长度列表,数据库字段的标准长度列表,字段,数据库表,最常见,有没有人,List of standard lengths for database field推荐的用于标记或标记的SQL数据库
推荐的用于标记或标记的SQL数据库设计,推荐的用于标记或标记的SQL数据库设计,映射,方法,缩放,说过,Recommended SQL database design关于.net:C#应用程序被检测为病毒
关于.net:C#应用程序被检测为病毒,关于.net:C#应用程序被检测为病毒,安装,项目,程序,几分钟,C# application detected as a virus关于关于c#:创建单实例WPF应用程序的正确
关于c#:创建单实例WPF应用程序的正确方法是什么?,关于c#:创建单实例WPF应用程序的正确方法是什么?,控制台,窗体,只读,比我,What is the cor