2010-01-24 58 views
1

我需要將參數從控制器中的一個方法傳遞到另一個方法。跨控制器加密參數

根據我的理解,我必須將參數作爲GET傳遞給url字符串。

什麼是加密數據的最佳方式,所以沒有人可以看到實際得到的字符串中傳遞什麼?另外,有沒有辦法通過POST或者我的原始理解是否正確?

回答

2

我沒有使用RoR,但在網絡世界中,這個問題是通過會話解決的。使用會話可以將參數存儲在服務器上,並避免使用GET或POST發送敏感數據(兩者都不安全)。

Ruby on Rails Security Guide看起來像一個很好的閱讀與此有關。

+0

我第二。嘗試使用會話。 – 2010-01-24 01:03:03

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請求。