我想知道是否有办法点击我网站上的链接进行访问,但无法直接访问。是否可能,如果可能,怎么样? JScript的?
答案 0 :(得分:1)
从绝对预防机器人或自动程序的角度来看,这是完全不可能的。
有两种可能性:
检查HTTP Referrer。有些浏览器会在那里发送以前的URI。但请注意,用户可能已禁用此功能(例如,我将其关闭)。
强制用户查看第一个网站。如果用户在未访问第一个站点的情况下加载第二个站点,则将其重定向到伪URI或其他任何内容。
第二点的示例:
first.php:
<?php
session_start();
$_SESSION['firstPageDate'] = time();
second.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');
}
答案 1 :(得分:0)
当然,您只需要阻止默认事件。例如,这里是如何使用jQuery完成的:
$('#myLink').on('click', function (event) {
event.preventDefault();
// ... something else
});
编辑我相信我误解了这个问题并完全倒退了。我现在认为问题是&#34;我是否可以拥有用户可以与之交互的链接,但无法直接访问(例如,通过输入网址)。&#34;答案是&#34;是的。&#34;
<a href="#" id="myLink">Click me!</a>
脚本:
$("#myLink").on("click", function (event) {
// either set the window.location for redirect or
// perform some other operation.
});
单击该链接将产生所需的效果。如果您确实想要访问无法从外部访问的目标页面,则需要与服务器协调以设置某种身份验证。
答案 2 :(得分:-1)
如你所述,这是不可能的。