【问题标题】:Pass data from controller to controller safely安全地将数据从控制器传递到控制器
【发布时间】:2014-07-19 23:24:09
【问题描述】:

我有 2 个控制器:一个 Subscriptions 控制器和一个 PaypalExplress 控制器。首先处理所有订阅数据,其次处理贝宝交易。

问题是必须以某种方式将价格金额 (@subscription.price) 从 Subscriptions 传送到贝宝控制器。我考虑过 session[]params[] 哈希,但我认为这不是一种安全的方法。

【问题讨论】:

    标签: ruby-on-rails ruby paypal


    【解决方案1】:

    @subscription 不是实例模型吗?如果您在数据库中有一行,只需重定向到传递订阅 ID 的相应 URL 并检索另一端的数据。

    您需要了解 routing 并且阅读一些有关 MVC 原则的 getting started 指南不会有什么坏处。

    【讨论】:

    • 问题是@subscription记录在重定向到paypal控制器时没有保存,所以它没有id。用户也可以在 url 中写入另一个 id,paypal 交易会在订阅错误的情况下工作。
    【解决方案2】:

    试试这个...

    您可以加密和解密您的会话参数。

    Encode(Session["price"].ToString());
    
    
    
            public string Encode(string encodeMe)
            {
                byte[] encoded = System.Text.Encoding.UTF8.GetBytes(encodeMe);
                return Convert.ToBase64String(encoded);
            }
    
            public static string Decode(string decodeMe)
            {
                byte[] encoded = Convert.FromBase64String(decodeMe);
                return System.Text.Encoding.UTF8.GetString(encoded);
            }
    

    【讨论】:

    • 编码可能是个好主意,但它看起来像 C# 代码,而不是 Ruby :)
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多