早上好!请帮助:-)
什么:只有当用户来自另一个外部域页面时,我才允许查看页面。换句话说,除非你来自URL"A",否则你看不到URL"B"。我不希望他们能够访问来自任何其他URL的页面或在浏览器中粘贴链接。URL A和URL B都是静态链接。我该怎么做?
原因:我有一个静态的Weebly"会员专用"页面,其中有一个到Drupal网站页面的静态链接。如果他们是我的Weebly网站的成员,他们可以看到并使用该链接。但是,如果有人使用该URL查看来自任何其他页面的页面,或者只是在浏览器中粘贴该URL,我希望该页面不显示或重定向回我的Weeply网站中的另一个静态链接。我不想让他们在两个不同的网站上注册为会员。我保留了Drupal网站的视图功能,以构建他们将要查看的页面。
注意:我读到HTTP_REFERER不是一个非常安全的解决方案。这是唯一的选择吗?
希望这是有道理的!感谢您的专业知识和帮助。
您可以在url中包含某种类型的令牌。你的Drupal URL应该看起来像www.example.com/members?key=fa54sadf551cd8garg5hdasadd2a1d5af。每次加载页面时,您都应该检查通过URL接收的密钥是否与该页面存储的密钥相匹配。
然后,在你的非Drupal网站上,你必须在URL中包含你的密钥。这个解决方案会很好,但有人可以猜到你的密钥,然后它就不再是私人的了。
更先进的解决方案如下:
- 在Drupal网站中设置一个web服务,需要私钥,并提供动态密钥以进入仅限会员的页面
- 使用非Drupal网站上的此web服务将此密钥添加到显示给用户的URL中
- 每次访问Drupal会员专用页面时,都要更改动态密钥。这样,下次加载非Drupal页面时,密钥将不同,并且以前的密钥将不再有效
如果您的页面没有太多流量,这应该可以正常工作。您可以更改此行为,将用户访问权限授予那些输入在最后5分钟内创建的密钥的用户。
希望能有所帮助。