0

私のサイトのリンクをクリックしてアクセスする方法があるかどうか疑問に思っていましたが、直接アクセスすることはできません。それは可能ですか?JScript?

4

3 に答える 3

1

ボットや自動プログラムに対する完全な防御という意味では、これは完全には不可能です。

次の 2 つの可能性があります。

  • HTTP リファラーを確認します。一部のブラウザーは、以前の URI をそこに送信します。ただし、ユーザーがこれを無効にしている可能性があることに注意してください (たとえば、オフにしました)。

  • ユーザーに最初のサイトを表示させます。ユーザーが最初のサイトにアクセスせずに 2 番目のサイトを読み込んだ場合は、ユーザーを偽の URI などにリダイレクトします。

2 点目のサンプル:

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');
}
于 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 に答える