这是个安全问题,当我们在系统注册页面输入密码等敏感数据时,我们可以看到,密码以明文的形式显示在日志文件里:
Processing UsersController#create (for 127.0.0.1 at 2007-02-23 19:11:20) [POST]
Session ID: 4047778b64af62d387f7e860e51cce20
[color=red]Parameters[/color]: {"user" => {"name" => "Ryan", "password_confirmation" => "abc123", "password" => "abc123"}, "commit" =>
"Register", "action" => "create", "controller" => "users"}
SQL (0.000108) BEGIN
[color=red]SQL[/color] (0.000238) INSERT INTO users ('name', 'password') VALUES('Ryan', 'abc123')
SQL (0.000395) COMMIT
Redirected to http://localhost:3000/users/5
...
我们看到Parameters一行密码是明文显示的,这样当然不安全。
解决方案也十分简单:
class ApplicationController < ActionController::Base
filter_parameter_logging "password"
end
这样在Parameters那行就会显示"password_confirmation" => "[FILTERED]","password" => "[FILTERED]"
filter_parameter_logging的方法定义位于action_pack/lib/action_controller/base.rb。
但是我们也看到SQL一行也是明文密码,我们的filter不会过滤SQL语句,怎么办?
解决方案是,部署production环境时,日志不会再打印SQL语句,这样就避免了此问题。
分享到:
相关推荐
Rails::API 是 Rails 的精简版本,针对不需要使用完整...也可以用来编写在 Web 应用和客户端之间进行数据共享的后端程序,允许开发者创建接受 JSON 格式数据并以传统 RoR 应用方式存储的REST端点。 标签:rails
4. **添加认证逻辑**:为了保护敏感数据,可以使用Devise或其他认证插件实现用户登录验证。 5. **测试API**:使用Postman等工具发送请求,测试API是否按预期工作。 通过以上步骤,我们可以构建出一个基本可用的...
在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。
通过上述措施,Ruby on Rails开发者可以有效地防止XSS攻击,保护Web应用和用户的数据安全。记住,安全是一个持续的过程,需要不断地学习、适应和改进。 通过本文的介绍和示例,你应该能够理解如何在Ruby on Rails中...
4. ** 过滤器链**:Rails的过滤器机制允许在控制器操作之前或之后执行特定代码,显示过滤器链有助于了解这些钩子的执行顺序和状态。 5. ** 路由信息**:Rails的路由系统是其强大之处,通过Footnotes,开发者可以...
- **日志过滤**:解释如何过滤敏感信息,避免它们出现在日志中。 - **异常处理**:介绍如何处理运行时异常。 - **强制使用HTTPS协议**:指导如何强制客户端使用HTTPS协议访问应用。 #### Rails路由全解 - **Rails...
- 保护敏感数据。 #### 十一、练习作业4-User可以加入、退出社团 - **目标**: - 用户能够加入或退出特定Group。 - **实现过程**: - 添加Join/Quit操作。 - 更新数据库结构。 - 实现逻辑处理。 #### 十二、...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...
9. **Rails最佳实践**:了解并遵循Rails社区的最佳实践,如代码风格、设计模式和重构技巧,有助于写出更高质量的代码。 10. **Rails社区与工具**:熟悉Rails社区的资源,如Stack Overflow、GitHub上的开源项目,...
首先,日志文件在Ruby on Rails中扮演着至关重要的角色,它们记录了应用程序运行时的详细信息,包括数据库查询、控制器操作以及视图渲染等。通过分析这些日志,我们可以获取到关于应用性能的宝贵数据。例如,如果一...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...
标题 "Rails相关电子书汇总" 暗示了这个压缩包包含了关于Ruby on Rails框架的电子书籍资源。Ruby on Rails,通常简称为Rails,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,以...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
《敏捷Web开发与Rails:程序指南 第四版》是一本深度探讨使用Ruby on Rails框架进行敏捷Web应用开发的专业书籍。本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是...
Rails在2005年发布第一个稳定版本1.0.0。 - **Rails的版本迭代**:文档中提到的v1.0.0是Rails早期的一个版本,而Rails 2.3.2和Rails 2.5是后续更迭的版本。 - **Rails的主要特性**:Rails采用了约定优于配置...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...
### Rails 101S: 初学者必备的Ruby on Rails 宝典 #### Introduction: 深入了解Ruby on Rails 《Rails 101S》是一本为Ruby on Rails初学者准备的手册,旨在帮助新手快速入门并掌握基本的开发技能。本手册将从最...
看 Rails:流实时日志的引擎## 依赖导轨 4+ 环境$ bundle install $ bundle exec rails g jquery: install $ bundle exec rails g wice_grid: install $ bundle exec rails generate bootstrap: install static $ ...