-2

ユーザーが Web ブラウザーで手動で URL を入力することを許可したくありません。ハッキング攻撃につながる可能性があります。したがって、http リファラーが空の場合は、ホームページにリダイレクトする必要があります。

この php コードを drupal Web アプリケーションの index.php に記述します。

if($_SERVER["HTTP_REFERER"] == "")
{
    header("Location:http://mysite.com"); 
}

問題は、ループが無限に続くことです。ホームページを表示することはありません。$_SERVER["HTTP_REFERER"] は常に空です。

Firefox では、以下のエラーが発生します。ページが正しくリダイレ​​クトされていません Firefox は、サーバーがこのアドレスへのリクエストを決して完了しない方法でリダイレクトしていることを検出しました。

それを解決する方法は?

4

2 に答える 2

0

正しいチェックは次のとおりです。

if (isset($_SERVER["HTTP_REFERER"]) && !empty($_SERVER["HTTP_REFERER"]))
{
   ... do something with referer
}

$_SERVER["HTTP_REFERER"] == " は、リファラーが設定されていない場合にエラーになるためです。

于 2019-11-11T11:54:11.993 に答える