跨控制器加密参数

时间:2010-01-24 00:56:56

标签: ruby-on-rails encryption parameters

我需要将参数从控制器中的一个方法传递给另一个方法。

根据我的理解,我必须将参数作为GET传递给url字符串。

加密数据的最佳方法是什么,所以没有人能看到字符串中实际传递的内容?另外,有没有办法通过POST传递它,或者我原来的理解是否正确?

2 个答案:

答案 0 :(得分:2)

我没有使用过RoR,但在网络世界中,这个问题通过会话解决了。使用会话可以将参数存储在服务器上,避免使用GET或POST发送敏感数据(两者都不安全)。

Ruby on Rails Security Guide看起来像是与此相关的精彩内容。

答案 1 :(得分:0)

我建议您将代码抽象为lib/,这样您就不必调用其他方法。而不是发出新的HTTP请求,只需将代码放在中心位置并从那里调用它。

class MyController < ApplicationController
  def index
    MyLibrary::Thing.do_stuff
  end

  def show
    MyLibrary::Thing.do_stuff
  end
end

# lib/my_library/thing.rb
module MyLibrary
  module Thing
    def self.do_stuff
      # do stuff!
    end
  end
end

这样,您可以在多个操作中访问相同的代码,而无需执行额外的HTTP请求。