2012-03-08 12 views
1

通常、someonesのソーシャルプロファイルに誰かへのリンクを送信すると、それを見るためのアカウントを作成するよう求められます。しかし、私はそれをやりたいとは思っていませんでした。むしろ、検索エンジンで索引付けできなかったリンクや、リンク上のコンテンツを見ることができるように複雑になっていたものを、私は思っていました次のようなもの:誰かに誰かが持つことができる何かへのリンクを与える方法を教えてください。

www.domain.com/user/content/private/secured/90989834093/testcontent.php 

どうすれば安全に達成できますか?

答えて

4

代わりに、1回限りのランダムアクセストークンを生成し、それをクエリ文字列で使用することができます。トークンは、以前にアクセスされたかどうかを知るデータベースに格納される。ページがヒットしたとき、トークンはデータベースと照合され、まだアクティブであればコンテンツが提供されます。

真実は以下のようにコメントされていますが、これはセッションまたはCookieと連携してうまく機能するため、アクセストークンを使用した後も認証済みのユーザーにサービスを提供できます。

+0

セッションやクッキーと組み合わせて、最初にアクセスしたユーザーがページにアクセスできるようにすることもできます(そして彼のみ)。 –

+0

それは良いアイデアです、私はそれに私の答えを追加します。 – aaroncatlin

+0

ありがとう!私はまた、その人がアカウントを持っているのではなく、自分が入力しなければならないパスフレーズのオプションを与えるために参照する人物を与えることを考えていました。 –

1

これは、YouTubeと他のサイトの「非公開」の動画の裏にある原則です。無関係にランダムに生成された文字列で、NOINDEXとNOFOLLOWによる検索がブロックされています。しかし、それは本当の意味では安全ではないことに注意してください。認証はなく、URLにアクセスする人は誰でもアクセスできます。

目的のユーザーがわかっている場合は、IPまたはIP範囲でアクセスを制限できます。ただ別の考え。

+0

または、私は彼らに、参照人が与える秘密を入力するオプションを与えることを考えていました。 –

2

ハッシュ関数を使用して、この種のURLを作成するための「ランダム」文字列を作成できます。例えば

、スタンダールプロフィールのページがある場合:

domain.com/user/$id/show.php 

$ idは、その値がユーザのIDであるVARあるとき。 あなたはこのような何かを行うことができます。

$hash = md5($id); 
domain.com/user/$hash/show.php 

問題は、誰もが得るプロセスを複製し、最終的にハッシュに達することができるということです。 したがって、ランダムな文字列を設定し、それをDBに追加し(そのユーザーに関連付ける)、ハッシュしてください。

検索エンジンがインデックスを作成しないようにするには、単純な手法を使用してrobots.txtファイルを探します。

関連する問題