1

我有两个网址,AB. 我想阻止用户直接访问B,并想强制执行一个“规则”,这样一个人只能在访问B 访问A。更具体地说,登陆的唯一途径B是通过重定向 on A

我正在考虑使用一些 jsB来检查document.referrer,如果不是,A则将用户重定向出去B。但是,这在我的情况下可能不起作用,因为使用重定向B可以达到,在这种情况下不会给我.document.referrerA

如果可能的话,我还希望在加载内容后不必使用 js 进行检查,这将有助于节省一些带宽。B

是否有任何有效且稳健的方法可以做到这一点?

4

2 回答 2

3

您应该让页面 A 设置一个 cookie,并让页面 B 检查 cookie 的存在。它不是万无一失的,也不是 100% 健壮的,但它是在无状态应用程序(如 Web)中实施此类限制的公认方法。

于 2012-10-15T14:44:56.700 回答
1

如果你想避免在 A 还没有被查看时加载 B 的内容,那么你的服务器需要在查看者查看 A 时设置一个 cookie,当你的服务器被要求 B 时,它需要检查是否存在正确的 cookie 并且不提供 B 页面内容,除非存在来自 A 的所需 cookie。您没有描述如果用户在还没有到 A 时去 B 时想要发生的事情,但是您的服务器可以设置到 A 的重定向或者可以提供用户没有在其中做任何事情的消息正确的顺序并给他们一个点击链接。

从概念上讲,这有点像在您允许查看页面 B 之前要求查看者在页面 A 上登录。登录(cookie 的设置)可以在查看页面 A 之后自动进行,或者您可以要求查看者对页面采取一些操作在设置允许访问页面 B 的 cookie 之前,页面 A(提供凭据、单击按钮等)。

于 2012-10-15T14:51:53.870 回答