2013-06-26 8 views
6

私は承認されたウェブサイトからのみアクセスできるページを作成しようとしていますが、そのアプローチ方法は正確にはわかりません。ランダムなキーを生成してURLに添付し、そのキーは1回のアクセスでのみ有効なPHPコードのスニペットのように提供する必要がありますか?特定のページからリンクのみにアクセスできるようにしますか?

または、他のドメインにCookieセットを設定して、最終的な宛先で読み取ることは可能でしょうか?最初のページに1ピクセルのiframeが表示されますか?

私は、まったく動作しない何かをしようとしていますか?

+0

発信元と宛先の両方のウェブサイトを管理できますか?その場合、サイト間で暗号的に選択され、調整されたクッキーを使用します(少なくとも受動的に、クッキーが有効に署名されていなければなりません、クローズタイムスタンプがあり、重複しないようにしてください) – hexafraction

+0

私は直接コントロールできません他のウェブサイトは、私はあなたのウェブサイトを使用して、それを使用できるようにするには、このPHPウィジェットをあなたのウェブサイトに追加する必要があると私は言うことができると私はそのようにサーバー側のスクリプトを行うことができます。クッキークロスドメインをどうすれば処理できますか? Iframe? – zen

+2

https://en.wikipedia.org/wiki/HTTP_cookie#window.nameを見てください。「現在のウェブブラウザはすべて、JavaScriptを使用してかなり大量のデータ(2〜32 MB)を保存できます。このデータはセッションクッキーの代わりに使用することができ、クロスドメインでもあります。このテクニックはJSON/JavaScriptオブジェクトと組み合わせて、クライアント側に複雑なセッション変数[51]を格納することができます。暗号で署名された認証データはそこに保存することができます/ – hexafraction

答えて

1

に答えて、我々はそれを明確にすることができましたです...

私は[禅]だけせずにページを確保する方法を必要とします各ユーザーのログイン資格情報、またはそのようなログインの必要があります。私が思ったもう一つの選択肢は、リンクをクリックするたびにPOSTを送信することでした。私のページでは、POSTに特定のキーが含まれている場合にのみ許可されます。 [...]

不正アクセスを検出することは問題ではないため、http refererを承認されたサイト(および/またはページ)のリストと照合することをお勧めします。承認されたサイトに対して非侵襲的であり、あなたが確認した固定のポストトークンよりも悪いセキュリティを提供しません。

PHPでは、リファラーは、利用可能であれば$_SERVER['HTTP_REFERER']変数にあります。

-2

OKので、ここでは、コメントで

<?php 
$server = $_SERVER['SERVER_NAME'];   //Getting Server name 
$site_name = "http://$server";    //Creating Website URL from SERVER_NAME 
$url_allowed = array("http://www.allowed1.com", "http://www.allowed2.com"); //Add Allowed Website list Here 
if(in_array($site_name,$url_allowed)){ 
echo "<a href='***your link here***'>This is Link</a>"; 
}else{ 
echo "This Link is Not Allowed For Your Site"; 
} 
?> 
+2

-1これは問題を解決していないため、あらかじめ定義された配列のサーバー名を検索します。それはOPの質問とは何か関係がありますか? – ComFreek

+1

これは、全体が異なる何かを検証しているようです。 – hexafraction

+0

@zenと話した後、リファラーチェックは実際にこれを行うための合理的な方法だと思われます。それを反映する答えを編集しました。 – adhominem

関連する問題