`

在Rails中使用SSL

阅读更多
   当RAILS中需要指定一些方法必须在ssl在访问的时候,就会用的这样的插件
github官网
当前版
简单版

  class ApplicationController < ActiveRecord::Base
    include SslRequirement
  end

  class AccountController < ApplicationController
    ssl_required :signup, :payment
    ssl_allowed :index
    
    def signup
      # Non-SSL access will be redirected to SSL
    end
    
    def payment
      # Non-SSL access will be redirected to SSL
    end

    def index
      # This action will work either with or without SSL
    end

    def other
      # SSL access will be redirected to non-SSL
    end
  end


   然而,在使用的时候,遇到了问题。mod_rewrite没有设置HTTP_X_FORWARDED_PROTO头,所以,从mongrel来的请求不能确认是https的,所以就需要下面的修改

def ensure_proper_protocol
  #ssl_requirement.rb, line 49
  return true if ssl_allowed?
  if ssl_required? && !(request.ssl? || request.port == 443)
    redirect_to "https://" + request.host + request.request_uri
    return false
  elsif (request.ssl? || request.port == 443) && !ssl_required?
    redirect_to "http://" + request.host + request.request_uri
    return false
    end
end


引用
You can overwrite the protected method ssl_required? to rely on other things
than just the declarative specification. Say, only premium accounts get SSL.

P.S.: Beware when you include the SslRequirement module. At the time of
inclusion, it'll add the before_filter that validates the declarations. Some
times you'll want to run other before_filters before that. They should then be
declared ahead of including this module.

分享到:
评论

相关推荐

    rails-puma-ssl:在开发中开始使用SSL的简便方法

    在Rails开发中使用SSL可以帮助开发者提前发现和解决可能在生产环境中出现的SSL相关问题。 首先,你需要一个有效的SSL证书。在开发环境中,可以使用自签名证书。使用OpenSSL工具生成自签名证书: ```bash openssl ...

    rails 部署 nginx

    标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...

    Agile Web Development with Rails for Rails 3.2

    - **面向对象编程在Rails中的应用** - **数据库交互** - **RESTful架构** - **测试驱动开发(TDD)与行为驱动开发(BDD)** - **部署与运维** #### 详细知识点解析 ##### Rails 3.2概述 Rails 3.2是Ruby on Rails框架...

    ruby on rails istaller

    在Rails中,你可以使用`rails generate`命令快速生成模型、控制器、迁移等。例如,创建一个名为`User`的模型: ```bash rails generate model User name:string email:string ``` 运行数据库迁移以更新数据库结构...

    ruby on rails 安装手记

    在Rails中,MVC架构起着核心作用。Model负责数据逻辑,View负责展示,Controller处理请求并协调Model和View。例如,要创建一个名为`Post`的模型,可以运行: ``` rails generate model Post title:string content:...

    Security On Rails

    - 安全传输:强调了HTTPS的重要性,以及如何在Rails应用中配置SSL/TLS证书,确保数据在客户端与服务器之间的传输过程中的安全性。 4. **安全编码实践** - 输入验证:教导开发者如何对用户输入进行严格的验证和...

    rails web server deploy guide

    在Rails部署过程中,有以下几个关键知识点: 1. **环境准备**:首先,你需要一个运行Rails应用的服务器。这可以是云服务提供商(如AWS、Google Cloud或Heroku)上的虚拟机,或者自己的硬件。确保服务器操作系统是...

    安全访问基于SSL的页面,同时在HTTP和HTTPS之间共.zip

    综上所述,这个主题涵盖了Web安全的基础知识,包括SSL/TLS协议的应用、HTTPS与HTTP的混合使用,以及如何在Rails应用中使用Devise实现安全的会话管理。理解并正确实施这些策略对于任何开发安全Web服务的人员来说都是...

    Enterprise Rails

    《Enterprise Rails》是一本专注于企业级Rails应用开发的书籍,主要面向有经验的Ruby on Rails开发者,探讨如何在大型、复杂的企业环境中有效地运用这一强大的Web框架。2009年的出版时间点,正处于Rails框架逐渐成熟...

    letsencrypt-rails-heroku:在Heroku上的Rails应用程序中自动进行LetsEncrypt SSL证书

    该gem是使用其免费的基于SNI的SSL和LetsEncrypt在Heroku上保护Ruby on Rails应用程序的完整解决方案。 它会自动处理续订并保持您的证书最新。 通过一些额外的步骤,该宝石也可以与Sinatra一起使用。 有关如何执行...

    net-dns-0.1.zip_Rails_dns _ruby

    在这个`net-dns-0.1.zip`压缩包中,包含了`Rails`应用中使用`net-dns`库来处理DNS相关功能的源代码。 `net-dns`库提供了许多功能,包括但不限于: 1. **DNS查询**:你可以使用`net-dns`发送不同类型的DNS查询,如A...

    Pragmatic.Security.on.Rails.Dec.2009.rar

    《Pragmatic Security on Rails》是一本专注于Rails框架下的安全实践的书籍,其核心内容是指导开发者如何在Ruby on Rails环境中构建安全、可靠的Web应用程序。Rails的安全性是开发者必须重视的关键议题,因为任何...

    再次发一本部署rails的书

    通过阅读《再次发一本部署rails的书》,开发者可以系统学习Rails应用部署的全貌,从而避免在实际操作中遇到的问题,提高部署效率,确保Rails应用在生产环境中稳定运行。同时,书中提供的链接——,可能提供了更多...

    Ruby On rails依赖的目录树

    基于这些信息,我们将深入探讨Ruby on Rails框架的依赖结构,并解释每个依赖库的功能及其在Rails架构中的作用。 ### Ruby on Rails 依赖的目录树 #### 安装过程概览 在给定的部分内容中,我们看到一系列命令被...

    ansible-rails:使用Ansible部署Ruby on Rails-使用Lets Encrypt,Sidekiq,PostgreSQL,nginx和puma

    本篇文章将详细探讨如何使用Ansible部署一个基于Ruby on Rails的应用,该应用集成了Lets Encrypt(用于SSL证书)、Sidekiq(后台任务处理)、PostgreSQL(数据库服务)、nginx(反向代理)和puma(Web服务器)。...

    Ruby-Publify一个构建在Rails之上的自我托管We发布平台

    4. **SEO优化**:Publify提供了丰富的SEO工具,包括自定义元标签、URL重写等,有助于提高网站在搜索引擎中的可见性。 5. **社交媒体集成**:集成Twitter、Facebook等社交网络,方便分享文章和跟踪反馈。 6. **评论...

    RVM+Ruby1.9.3+Rails3(1-Cygwin 安装配置)

    在 Windows 7 环境下搭建 Rails 3 开发环境是一项颇具挑战性的任务,尤其是当涉及到 Cygwin、Ruby、Rails 以及一系列其他必要的组件时。本文将详细阐述如何在 Windows 7 系统上利用 Cygwin 进行环境搭建,包括 Git、...

Global site tag (gtag.js) - Google Analytics