【问题标题】:How to ensure http requests originate from a specific location?如何确保 http 请求来自特定位置?
【发布时间】:2014-02-14 11:37:08
【问题描述】:

HTTP Referer 是我目前的做法。使用过这种方法的每个人都知道它不是 100% 准确的,因为 Referer 标头是可选的,并且可能会被摆弄。

看着how-to-ensure-access-to-my-web-service-from-my-code-only,我仍然不确定如何以最小的方式解决这个问题。

情况:

在别人的网站上做广告。使用 iFrame 以便我可以随意更改内容/功能。每次操作完成时,我都会支付 $x.xx。因此,我需要确保操作是从我所说的允许完成的地方完成的。

我要防止的事情:

其他一些网站管理员也来了 - “嘿,这是一个不错的工具,让我把它放在我的网站上” 因此,正如我在顶部所说,如果引用者不匹配,我会重定向到具有相同工具的页面,但是在该页面上执行的任何操作都不会花费我任何钱。

在尝试防止上述情况时,允许以下情况:

我不介意我为“操作完成”而支付现金的网站管理员/网站所有者是否将代码放在其他网站上 - 显然这是一件好事。更多的报道,网站所有者获得更多的现金,我完成了更多的行动,这为我带来了更多的现金。

问题

我可以让对方做什么,这样我才能知道进入我网页的所有请求都来自与我有协议的对方,而不是随机的。

谢谢:)

信息再应用

其他方网站有一个 iFrame。 iFrame 显示我的一个 html/js/php 页面,该页面位于我的一个域中。此页面使用 ajax 请求与作为 ruby​​/sinatra 应用程序的实际 Web 服务进行交互。我有很多不同的页面适合其他方网站的外观。


所以我认为在对方服务器和我的服务器之间进行某种交流是个好主意。然后这个聊天的结果会在 iFrame 请求期间以某种方式呈现。

但是我不确定对方是否能够为 iFrame 中提供的域设置 cookie - 事实上我很确定它不能。

现在为了解决这个限制,我可以在页面上包含一个脚本作为 iFrame 的一部分,它可以设置 cookie。

好的,总结以上思路:

  • OtherParty 服务器向我的服务器发送请求得到响应。
  • 将带有该响应的页面作为参数呈现给
  • 我的脚本设置了一个 cookie
  • 因为脚本在 iFrame 之前,所以先加载脚本
  • iFrame 加载页面作为 cookie 已在该域 cookie 集上设置之前发送以及
  • 宾果游戏,请求验证合法

这听起来好吗?

顺便说一句,我想要完成操作的工具只有在启用 JS 时才有效,所以...

【问题讨论】:

    标签: security http ads


    【解决方案1】:

    如果您真的想确保谁可以加载您的 iframe,那么执行此操作的一种方法是通过 2-legged OAuth(即让您信任的合作伙伴“签署”iframe GET 请求)。然后,您的服务器可以根据加密有效的签名和已知的签名方授予访问权限。您需要为已签名的请求强制执行相对较短的有效生命周期,以防止其他人只是复制它们并将它们嵌入到他们自己的站点中。

    这还使您只需进行初始的离线密钥交换,而无需您的合作伙伴在 iframe 插入之前向您发出额外的服务器请求。

    【讨论】:

    • 太好了,感谢您提供的信息,我必须尝试一下 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2019-06-21
    • 2015-08-28
    相关资源
    最近更新 更多