我有一个 HTML 页面(在运行 Apache 的服务器上),它基本上包含指向同一服务器上 VirtualDirectories 中其他 HTML/PHP 页面的一堆链接(链接菜单)。有没有办法只允许通过单击“主页”上的链接访问这些链接中指定的 URL,而不是通过书签或使用某些 Apache 指令和/或 PHP 直接从浏览器发出 URL?我是否必须通过 POST 从“菜单页面”传递某种令牌,并检查该令牌是否具有来自链接的“应用程序”的有效值?
希望这个问题有意义。
答案1
使用 PHP 的服务器变量$_SERVER['HTTP_REFERER']
查看他们来自哪个页面。如果不是您有链接的页面,则拒绝他们访问。
请记住,这是最简单的解决方案,如果您非常担心安全性,则不应实施。引荐来源很容易被欺骗。
答案2
您可以使用 apache 本身中的 mod_rewrite 执行相同操作。
答案3
哎呀,重复发帖了。
http://www.widexl.com/tutorials/mod_rewrite.html#anti_leach
许多人使用 mod_rewrite 来阻止人们热链接图像。上面显示了一个例子。我敢打赌,上面的例子可以调整为你想要的效果。