只通过链接访问Html,无法访问?

时间:2013-09-25 20:27:59

标签: javascript php html

我想知道是否有办法点击我网站上的链接进行访问,但无法直接访问。是否可能,如果可能,怎么样? JScript的?

3 个答案:

答案 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)

如你所述,这是不可能的。