我想知道是否有一种方法可以点击我网站上的链接进行访问,但不能直接访问。有可能吗,如果有,怎么做?脚本?
问问题
57 次
3 回答
1
这在绝对防止机器人或自动程序的意义上是不可能的。
有两种可能:
检查 HTTP 引荐来源网址。一些浏览器会在其中发送以前的 URI。但请注意,用户可能已禁用此功能(例如,我将其关闭)。
强制用户查看第一个站点。如果用户在没有访问过第一个站点的情况下加载了第二个站点,则将他重定向到一个虚假的 URI 或其他。
第二点的示例:
第一个.php:
<?php
session_start();
$_SESSION['firstPageDate'] = time();
第二个.php:
<?php
session_start();
$firstPageDate = isset($_SESSION['firstPageDate']) ? $_SESSION['firstPageDate'] : 0;
$maxDiff = 60 * 3; // The user has 3 minutes for clicking the link
if (time() - $firstPageDate > $maxDiff) {
header('HTTP/1.1 401 Unauthorized', true, 401);
exit('No access');
}
于 2013-09-25T20:32:39.797 回答
0
当然,您只需要阻止默认事件。例如,下面是使用 jQuery 完成的方法:
$('#myLink').on('click', function (event) {
event.preventDefault();
// ... something else
});
编辑我相信我误读了这个问题并且完全倒退了。我现在认为问题是“我可以拥有一个用户可以与之交互但不能直接访问的链接(例如,通过输入 url)。” 答案是“是的”。
<a href="#" id="myLink">Click me!</a>
脚本:
$("#myLink").on("click", function (event) {
// either set the window.location for redirect or
// perform some other operation.
});
单击链接将产生所需的效果。如果您确实想访问无法从外部访问的目标页面,则需要与您的服务器协调以设置某种身份验证。
于 2013-09-25T20:32:32.383 回答
-1
不,正如您所描述的那样,这是不可能的。
于 2013-09-25T20:30:11.317 回答