直接にURLを入力して、アクセスしてくるユーザーを拒否する事は可能でしょうか?

出来ましたら、リファラ以外の方法でお願いいたします。
※環境はPHPです。.htaccessも使えます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/05/25 03:00:43
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答6件)

id:westfish No.1

回答回数49ベストアンサー獲得回数1

ポイント19pt

クッキーを使うのはどうでしょう?

直前にどのページにいたかをクッキーに記録しておき、各ページで「リンク元として正しいページから飛んできているか」をチェックしてコンテンツを表示するかエラーメッセージを出すか分岐するとできそうに思います。

http://e-words.jp/w/E382AFE38383E382ADE383BC.html

id:sudayosiaki No.2

回答回数204ベストアンサー獲得回数6

ポイント19pt

http://www.shtml.jp/htaccess/data.html

.htaccessでブラウザ経由のアクセスが拒否できます。

id:Nigitama No.3

回答回数311ベストアンサー獲得回数18

ポイント18pt

>直接にURLを入力して、アクセスしてくるユーザーを拒否する

ということは、前のページのリンクや、ボタンを押してくるユーザーのみがページの閲覧ができるということでしょうか?

リファラを使わないのであれば、フォームに

<form action='hoge.php' method='post' >

<input type='hidden' name='myname' value='true' />

などとして

PHP側で

if($_POST['myname'] == true)

とすれば、ポストされてなければ(URL直打した場合など)閲覧できないようにする

というのはどうでしょうか?

詳細な用途が分からないのでこれで満足のいける解決かどうか分かりませんが、URL直打を排除することは可能であると思います。

http://www.sound-uz.jp/php/tips/gpc.html

$_GETと$_POSTの使用例です。

id:tezcello No.4

回答回数460ベストアンサー獲得回数69

ポイント18pt

http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/

例えば、.htaccess で

DirectoryIndex を、index.php としておく

表示するファイルは拡張子を html(○○.html)にして保存する

リンク先は全て ○○.htm としておく

○○.html のファイルへのアクセスを禁止する

○○.htm へのアクセスは、index.php?p=○○ となる様に rewrite する

(○○.htm?a=uso&b=0 なら index.php?p=○○&a=uso&b=0 )

で、index.php でパラメータを読み込んで、必要なファイルを返すってのはどうでしょう。

全てのアクセスが、この index.php を通過する事になるので、ファイルを送り出す時に、

クッキーを仕込む

リンク先にセッションID(のようなものでも)を埋め込む

アクセスログを作っておいて、/ で終わるアクセス後でないと同一IPからはアクセスできないようにする

など、細かいチェックができるようになると思います。

id:hts1004 No.5

回答回数13ベストアンサー獲得回数2

ポイント18pt

以前会員登録タイプのサイトを制作した方に聞いたのですが、

登録ページが複数に渡るときには、セッション管理というのを

使って前ページからの遷移を管理していたそうです。

私は詳細までは答えられないのですが、下記、参考になりそうなページです。

http://www.stackasterisk.jp/tech/php/php03_06.jsp

id:aratako0 No.6

回答回数34ベストアンサー獲得回数1

ポイント18pt

http://www.shtml.jp/htaccess/host.html

id:sudayosiakiさんと似たような方法ですが、.htaccessで逆に自分のipアドレスのみそのページ入れるように設定しておいて、そのほかのipアドレスの人は別ページに飛ばしてしまうように設定するとか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません