0

早上好!请帮忙 :-)

内容:我希望仅当用户来自另一个外部域页面时才允许查看页面。换句话说,除非您来自 URL“A”,否则您看不到 URL“B”。我不希望他们能够访问来自任何其他 URL 的页面或将链接粘贴到浏览器中。URL A 和 B 都是静态链接。我怎样才能做到这一点?

原因:我有一个静态的 Weebly “仅限会员”页面,其中包含一个指向 Drupal 站点页面的静态链接。如果他们是我的 Weebly 网站上的成员,他们可以看到该链接并使用它。但是,如果有人使用该 URL 查看来自任何其他页面的页面或只是将 URL 粘贴到浏览器中,我希望该页面不显示或被重定向回我的 Weebly 站点中的另一个静态链接。我不想让他们在两个不同的网站上注册为会员。我保留 Drupal 站点的 Views 功能来构建他们将查看的页面。

注意:我读过 HTTP_REFERER 不是一个非常安全的解决方案。那是唯一的选择吗?

希望这是有道理的!感谢您的专业知识和帮助。

4

1 回答 1

0

您可以在您的网址中包含某种类型的令牌。您的 Drupal URL 应类似于 www.example.com/members?key=fa54sadf551cd8garg5hdasadd2a1d5af。每次加载您的页面时,您都应该检查通过 URL 接收到的密钥是否与您为该页面存储的密钥匹配。

然后,在您的非 Drupal 站点中,您必须在 URL 中包含您的密钥。这个解决方案可以正常工作,但有人可能会猜到你的密钥,然后它就不再是私有的了。

更高级的解决方案如下:

  1. 在您的 Drupal 站点中设置 Web 服务,需要私钥,并提供动态密钥以进入仅限会员的页面。
  2. 使用您的非 Drupal 站点中的此 Web 服务将此密钥添加到显示给用户的 URL
  3. 每次访问 Drupal 会员专页时,更改动态键。这样,下次加载非 Drupal 页面时,key 会不一样,之前的 key 将不再有效。

如果您的页面没有太多流量,这应该可以正常工作。您可以更改此行为以授予用户访问权限给输入在过去 5 分钟内创建的密钥的用户。

希望能帮助到你。

于 2015-04-20T11:46:26.353 回答