通过iframe验证正在使用我的服务的网站

时间:2013-05-22 08:22:39

标签: javascript authentication iframe

我有一项服务,我提供给不同的网站。对于网站使用该服务,他们实现了一个javascript,触发了一个带有iframe的灯箱。

问题是我不希望任何网站能够使用服务/ iframe。有什么办法可以使用iframe验证网站吗? 我看到它的方式,随机网站可以使用服务/ iframe从网站上获取javascript并在其自己的网站上实现。

验证iframe中的实际用户是没有问题的,会有一个登录表单和一个注册表单。这只是使用我想识别和验证的iframe的网站。

任何建议都是适当的!

1 个答案:

答案 0 :(得分:1)

您可以在JavaScript中查看document.referrer,如果引荐域不在您提供的白名单中(或者引荐来源为空),则根本不显示内容。

但是我们都知道推荐人是多么不可靠,即使在错误的条件下也可能排除用户。

另一种方式只会使嵌入你的iframe的网站具有服务器端脚本,因此可以计算某种哈希值 - f.e。当前日期的哈希值和密钥关键字 - 并将其作为iframe URL中的GET参数传递。在脚本中,检查给定值是否与使用相同数据创建的哈希值相同 - 并根据该值显示内容。

如果您的服务器和其他网站的时区设置不同,使用当前日期可能会有问题,并且当用户在午夜左右调用该页面时,它也可能会中断。为了防止出现此类问题,您可以让远程站点包含用于创建哈希值的unix时间戳值作为GET参数 - 然后您可以检查该时间戳是否为旧,并创建具有该确切值的哈希值。 (然后其他网站可能会尝试复制参数并在页面上使用它们,但它只适用于一小段时间窗口。)