【问题标题】:Embedded screen - security嵌入式屏幕 - 安全性
【发布时间】:2012-01-15 19:01:23
【问题描述】:

我们有一个网络应用程序:C# + SQL 2k5

不同的公司向我们发送信息,我们解析它们,做不同的事情,并为我们的每个客户提供一个简单的列表。该列表看起来相同,但会根据客户的不同提供不同的信息。

他们不应访问彼此的数据。

我们想创建一个嵌入到他们自己网站上的页面。我正在考虑使用 iFrame 之类的东西。

基本上,客户 ABC 会在他自己的 abc.com 上嵌入一个带有 URL 的 iframe(我们将为他们提供所需的参数),他的客户将在他的网站上看到我们的数据。

另一个客户,我们称他为 xyz,有另一个网站 xyz.com,会做同样的事情,但在 url 中我应该对它们进行区分。

我想知道如何进行是最好、最安全的方式。 我应该如何开始构建这个将要嵌入的页面。

我应该如何区分这 2 位客户?从他们那里获取信息的唯一方法是他们发送给我的参数,最终,我可以获得嵌入式 iFrame 的“父级”,这样可以帮助我限制 xyz 使用 url 参数信息嵌入以从 abc 获取数据。看到我的困境了吗? 可能需要每个客户的唯一标识符(如 GUID?),而且他们不知道彼此的 ID……或者有更安全的方法来做这样的事情吗?

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: c# iframe embed security


    【解决方案1】:

    在 URL 中嵌入一个公开可见的唯一 ID,并对其进行处理以提取客户端 ID。例如

    <IFRAME src="http://example.com/1122334455667788aabbcc">
    

    您可以检查Request.UrlReferrer以确保请求see this answer

    但是,这样做的唯一安全方法是提供一个经过身份验证的 API,站点使用服务器端通过服务 API(例如 WCF)进行处理,或者至少是经过身份验证的HttpWebRequest;任何其他方式都只能让您的数据与公开可见的唯一 ID 一样安全。

    【讨论】:

      【解决方案2】:

      看看其中一个信用卡处理门户是如何做到这一点的(例如 WorldPay 或 Paypal)。有几种方法。

      至少您需要为每位客户提供他们发送给您的唯一 ID。

      【讨论】:

        猜你喜欢
        • 2012-06-02
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 2015-06-26
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多