Maison >développement back-end >tutoriel php >Déterminer le référent en PHP

Déterminer le référent en PHP

王林
王林avant
2024-02-28 11:04:06854parcourir

L'éditeur PHP Strawberry vous présentera aujourd'hui comment déterminer le référent en PHP. Le référent fait partie de l'en-tête de la requête HTTP et est utilisé pour identifier la page source de la requête. Lors du processus de développement, il est parfois nécessaire d'obtenir des informations référentes pour mettre en œuvre des fonctions spécifiques, comme l'anti-sangsue, l'analyse statistique, etc. Les informations sur les référents peuvent être facilement obtenues via PHP pour implémenter les fonctions associées. Ensuite, nous présenterons en détail comment déterminer le référent en PHP, afin que chacun puisse facilement maîtriser cette technique.


Utilisez $_SESS<strong class="keylink">io</strong>N[] dans $_SESS<strong class="keylink">io</strong>N[]PHP

pour déterminer le référent

HTTP_REFERER Puisque peut être usurpé/falsifié, php

nous permet d'utiliser des sessions/cookies pour déterminer si les demandes utilisateur entrantes proviennent de votre domaine (serveur).

Nous allons créer deux pages de démonstration pour cet article.

userrequest.php

Code :

<code>
<code class="language-php+HTML hljs" data-lang="php+HTML"><!DOCTYPE <strong class="keylink">html</strong>>
<body>
<f<strong class="keylink">ORM</strong> action ="determineuser.php" method ="post" align="center">
<input type ="submit" name="click" value="Determine user request through session"/>

<?php
session_start(); //first we start session
$setsession = uniqid(mt_rand(), TRUE); //Set it true, assign mt_rand to ensure secuity
$_SESSION[&#39;set&#39;] = $setsession;
//we can use url to export session over servers
$redirect = "determineuser.php?set={$setsession}"; // this url can be on any server
?>

<br>
<h1 align="center">

<?php
echo "Your current session is:".$_SESSION['set']; //check session on page 1
echo"<br>";
?>
</form>
</body>
</html>
</code></code>
determineuser.php Code :

<code>
<code class="language-php+HTML hljs" data-lang="php+HTML"><?php
session_start(); //check if the session and form input is set
if ( (isset( $_SESSION[ 'set' ] ) && $_SESSION[ 'set' ] === TRUE ) || isset( $_POST[ 'click' ] ) ) {
echo "Determined Last visited page on the server using HTTP REFERER:<br>".$_SERVER['HTTP_REFERER'];
?>

<h1 align="center">
<p> This is the secure way to determine referer using session:</p>

<?php
echo $_SESSION[&#39;set&#39;];//check session on page 2 (compare to determine from the last page)
?>

</h1>

<?php
} else {
//if the dom<strong class="keylink">ai</strong>n referer is not determined, header function will redirect the user page to the last page
header(&#39;Location:userrequest.php&#39;);
exit; //exit to release unnessary server load
}
?>
</form>
</body>
</html>
</code></code>
Résultat :

在 PHP 中确定 referer

referer 的传统方法在大多数情况下并不可靠,但仍被广泛使用。为了更安全,我们建议使用 session 或 (<strong class="keylink">ajax</strong>) 而不是 HTTP Il est important de noter que même si la méthode traditionnelle de détermination du référent n'est pas fiable dans la plupart des cas, elle est encore largement utilisée. Pour plus de

sécurité🎜, nous vous recommandons d'utiliser session ou (🎜ajax🎜) au lieu de HTTP. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer