質問
現在のページを送信または呼び出したページ(AJAX経由)を判断する最も信頼性が高く安全な方法は何ですか。 $ _ SERVER ['HTTP_REFERER']
を使用したくないのは、信頼性がないためです(サイトから発信されたリクエストのみから呼び出されるページが必要です。< br>
編集:一連のアクションを実行するスクリプトが自分のWebサイトのページから呼び出されていることを確認しようとしています。
解決
REFERERは、クライアントのブラウザによってHTTPプロトコルの一部として送信されるため、実際には信頼できません。そこにはないかもしれませんし、偽造されているかもしれません。セキュリティ上の理由から信頼できないだけです。
サイトからリクエストが来ているかどうかを確認したい場合はできませんが、ユーザーがサイトにアクセスしたか、認証されているかを確認できます。 CookieはAJAXリクエストで送信されるため、信頼できます。
他のヒント
私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
$token = uniqid(mt_rand(), TRUE);
私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
if(empty(私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
$token = uniqid(mt_rand(), TRUE);
私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
<*>
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
SESSION['token'] = $token;
$url = "http://example.com/index.php?token={$token}";
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
GET['token']) || 私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
$token = uniqid(mt_rand(), TRUE);
私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
<*>
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
SESSION['token'] = $token;
$url = "http://example.com/index.php?token={$token}";
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
GET['token'] !== 私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
$token = uniqid(mt_rand(), TRUE);
私が最も見つけたのはCSRFトークンで、リファラーを確認する必要があるリンクのセッションに保存します。
したがって、FBコールバックを生成している場合、次のようになります。
<*>
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
SESSION['token'] = $token;
$url = "http://example.com/index.php?token={$token}";
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
SESSION['token'])
{
show_404();
}
//Continue with the rest of code
その後、index.phpは次のようになります。
<*>
すべての安全なページに対してこれに相当する安全なサイトを知っています。
SESSION['token'] = $token;
$url = "http://example.com/index.php?token={$token}";
その後、index.phpは次のようになります。
<*>すべての安全なページに対してこれに相当する安全なサイトを知っています。
$ _SERVER ['HTTP_REFERER']
の使用ユーザーエージェントを参照したページのアドレス(ある場合) 現在のページ。これは、ユーザーエージェントによって設定されます。すべてのユーザーエージェントが これを設定し、一部はHTTP_REFERERを 特徴。要するに、実際には信頼できない。
if (!empty( $ _SERVER ['HTTP_REFERER']
の使用
ユーザーエージェントを参照したページのアドレス(ある場合)
現在のページ。これは、ユーザーエージェントによって設定されます。すべてのユーザーエージェントが
これを設定し、一部はHTTP_REFERERを
特徴。要するに、実際には信頼できない。
<*>SERVER['HTTP_REFERER'])) {
header("Location: " . $ _SERVER ['HTTP_REFERER']
の使用
ユーザーエージェントを参照したページのアドレス(ある場合)
現在のページ。これは、ユーザーエージェントによって設定されます。すべてのユーザーエージェントが
これを設定し、一部はHTTP_REFERERを
特徴。要するに、実際には信頼できない。
<*>SERVER['HTTP_REFERER']);
} else {
header("Location: index.php");
}
exit;
これを確認する信頼できる方法はありません。それがどこから来たのかを伝えるのは、本当にクライアントの管理下にあります。 Cookieまたはセッション情報をWebサイトの一部のページにのみ使用することを想像できますが、そうするとブックマークのユーザーエクスペリエンスが損なわれます。
偽のリファラーの問題をすべて読んだ後、残っているオプションは1つだけです。 つまり リファラーとして追跡したいページはセッションに保持する必要があり、ajaxが呼び出され、リファラーページの値があるかどうかをセッションでチェックし、それ以外の場合はアクションを実行しません。
一方、別のページをリクエストしている間は、リファラーセッションの値をnullにします。
セッション変数は、要求ページのリクエストでのみ設定されることに注意してください。