現在の位置: ホーム> 最新記事一覧> 参照を取得するためのPHPの方法と安全な実装

参照を取得するためのPHPの方法と安全な実装

M66 2025-10-05

PHPの参考文献の紹介

Web開発では、リファラーはリクエストのソースページを識別するHTTPリクエストヘッダーの一部です。参照を取得することにより、盗難防止リンク、ユーザーソースの統計、その他の機能を実現できます。ただし、HTTP_REFERER自体は簡単に偽造されることに注意する必要があるため、セキュリティ要件が高い場合は完全に信頼できないことに注意してください。

セッションを使用して、リクエストのソースを確認します

http_refererには改ざんされる可能性があるため、セッションまたはCookieを使用して、リクエストが指定されたページから来るかどうかを判断する方が安全です。以下は、サンプルコードによって実証されています。

userrequest.phpの例

<!DOCTYPE html>
<html>
<body>
<form action="determineuser.php" method="post" align="center">
    <input type="submit" name="click" value="セッションを合格じてユーザーリクエストを決めるします"/>
</form>
<?php
session_start(); // 開ける Session
$setsession = uniqid(mt_rand(), TRUE); // 一意の識別子を生成します
$_SESSION['set'] = $setsession;
$redirect = "determineuser.php?set={$setsession}"; // 成果物 Session ロゴ

echo "<h1 align='center'> ";
echo "今のセッションは二流のとおりです。"。$ _ session [&#39;set&#39;]; //ページにセッションが急行されます

エコー」</h1> ";
?>
</body>
</html>

sechineUser.phpの例

<?php
session_start(); // 診る Session 提出して形成します
if ( (isset($_SESSION['set']) && $_SESSION['set'] === TRUE) || isset($_POST['click']) ) {
    echo "Determined Last visited page on the server using HTTP REFERER:<br> "。$ _ server [&#39;http_referer&#39;];
    エコー」<h1 align='center'> ";
    エコー」<p> これは、セッションを使用して参照を決めるする安全性な方法です。</p> ";
    Echo $ _Session [&#39;set&#39;]; //セッションがエコーと一貫性のあるすることを確認します」</h1> ";
} それ以外 {
    //ソースを決めるできない場合は、userrequest.phpにリダイレクトします
    ヘッダー( &#39;場所:userrequest.php&#39;);
    出口;
}
?>

要約します

$ _server ['http_referer']を使用して、安全ではありませんが、ソースを直接決定するのは簡単です。セキュリティ要件が高いシナリオでは、セッションまたはAJAXを通じてリクエストのソースを確認して、参照者の偽造のリスクを回避することをお勧めします。