`
hideto
  • 浏览: 2666944 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第九式: 在日志里过滤敏感数据

    博客分类:
  • Ruby
阅读更多
这是个安全问题,当我们在系统注册页面输入密码等敏感数据时,我们可以看到,密码以明文的形式显示在日志文件里:
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的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整...也可以用来编写在 Web 应用和客户端之间进行数据共享的后端程序,允许开发者创建接受 JSON 格式数据并以传统 RoR 应用方式存储的REST端点。 标签:rails

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    4. **添加认证逻辑**:为了保护敏感数据,可以使用Devise或其他认证插件实现用户登录验证。 5. **测试API**:使用Postman等工具发送请求,测试API是否按预期工作。 通过以上步骤,我们可以构建出一个基本可用的...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。

    Ruby on Rails中的XSS防御策略:构建安全的Web应用

    通过上述措施,Ruby on Rails开发者可以有效地防止XSS攻击,保护Web应用和用户的数据安全。记住,安全是一个持续的过程,需要不断地学习、适应和改进。 通过本文的介绍和示例,你应该能够理解如何在Ruby on Rails中...

    Ruby-RailsFootnotes在每一个Rails页脚展示应用程序的相关信息方便调试

    4. ** 过滤器链**:Rails的过滤器机制允许在控制器操作之前或之后执行特定代码,显示过滤器链有助于了解这些钩子的执行顺序和状态。 5. ** 路由信息**:Rails的路由系统是其强大之处,通过Footnotes,开发者可以...

    Ruby on Rails 指南 v5.0.1 中文版

    - **日志过滤**:解释如何过滤敏感信息,避免它们出现在日志中。 - **异常处理**:介绍如何处理运行时异常。 - **强制使用HTTPS协议**:指导如何强制客户端使用HTTPS协议访问应用。 #### Rails路由全解 - **Rails...

    Rails 101 入门电子书

    - 保护敏感数据。 #### 十一、练习作业4-User可以加入、退出社团 - **目标**: - 用户能够加入或退出特定Group。 - **实现过程**: - 添加Join/Quit操作。 - 更新数据库结构。 - 实现逻辑处理。 #### 十二、...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    java基础之rails命令大全.pdf

    ### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...

    Advanced Rails

    9. **Rails最佳实践**:了解并遵循Rails社区的最佳实践,如代码风格、设计模式和重构技巧,有助于写出更高质量的代码。 10. **Rails社区与工具**:熟悉Rails社区的资源,如Stack Overflow、GitHub上的开源项目,...

    Ruby-Rails日志分析器查看您的视图渲染的速度

    首先,日志文件在Ruby on Rails中扮演着至关重要的角色,它们记录了应用程序运行时的详细信息,包括数据库查询、控制器操作以及视图渲染等。通过分析这些日志,我们可以获取到关于应用性能的宝贵数据。例如,如果一...

    to_xls-rails:将Rails ActiveRecord或Mongid数据导出到Excel文件

    这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git =&gt; ...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    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 Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    Agile Web Development with Rails 4th edition(敏捷Web开发与Rails:程序指南 第四版)

    《敏捷Web开发与Rails:程序指南 第四版》是一本深度探讨使用Ruby on Rails框架进行敏捷Web应用开发的专业书籍。本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是...

    Ruby+on+Rails快速Web应用开发实战.pdf

    Rails在2005年发布第一个稳定版本1.0.0。 - **Rails的版本迭代**:文档中提到的v1.0.0是Rails早期的一个版本,而Rails 2.3.2和Rails 2.5是后续更迭的版本。 - **Rails的主要特性**:Rails采用了约定优于配置...

Global site tag (gtag.js) - Google Analytics