Question

Quel est le moyen le plus fiable et le plus sûr de déterminer quelle page soit envoyée, ou appelée (via AJAX), la page actuelle. Je ne souhaite pas utiliser $ _ SERVER ['HTTP_REFERER'] , en raison de la (manque de) fiabilité, et j'ai besoin que la page appelée ne vienne que de requêtes provenant de mon site. < br>
Edit: Je cherche à vérifier qu’un script qui effectue une série d’actions est appelé depuis une page de mon site Web.

Était-ce utile?

La solution

REFERER est envoyé par le navigateur du client dans le cadre du protocole HTTP et n’est donc pas fiable. Il se peut qu'il ne soit pas là, qu'il soit falsifié, vous ne pouvez pas y faire confiance si c'est pour des raisons de sécurité.

Si vous souhaitez vérifier si une demande provient de votre site, vous ne pouvez pas le faire, mais vous pouvez vérifier que l'utilisateur est bien allé sur votre site et / ou est authentifié. Les cookies sont envoyés dans les requêtes AJAX, vous pouvez donc vous y fier.

Autres conseils

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

$token = uniqid(mt_rand(), TRUE);

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

if(empty(

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

$token = uniqid(mt_rand(), TRUE);

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

<*>

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

GET['token']) ||

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

$token = uniqid(mt_rand(), TRUE);

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

<*>

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

GET['token'] !==

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

$token = uniqid(mt_rand(), TRUE);

Ce que j’ai trouvé de mieux, c’est un jeton CSRF et l’enregistrez dans la session pour les liens sur lesquels vous devez vérifier le référant.

Donc, si vous générez un rappel de FB, il ressemblerait à ceci:

<*>

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

SESSION['token']) { show_404(); } //Continue with the rest of code

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Ensuite, le fichier index.php ressemblera à ceci:

<*>

Je connais des sites sécurisés qui font l'équivalent pour toutes leurs pages sécurisées.

Utilisation de $ _SERVER ['HTTP_REFERER']

  

L'adresse de la page (le cas échéant) qui a renvoyé l'agent utilisateur vers le   page actuelle. Ceci est défini par l'agent utilisateur. Tous les agents utilisateurs ne seront pas   définir ceci, et certains fournissent la possibilité de modifier HTTP_REFERER en tant que   fonctionnalité. En bref, on ne peut pas vraiment faire confiance.

if (!empty(

Utilisation de $ _SERVER ['HTTP_REFERER']

  

L'adresse de la page (le cas échéant) qui a renvoyé l'agent utilisateur vers le   page actuelle. Ceci est défini par l'agent utilisateur. Tous les agents utilisateurs ne seront pas   définir ceci, et certains fournissent la possibilité de modifier HTTP_REFERER en tant que   fonctionnalité. En bref, on ne peut pas vraiment faire confiance.

<*>SERVER['HTTP_REFERER'])) { header("Location: " .

Utilisation de $ _SERVER ['HTTP_REFERER']

  

L'adresse de la page (le cas échéant) qui a renvoyé l'agent utilisateur vers le   page actuelle. Ceci est défini par l'agent utilisateur. Tous les agents utilisateurs ne seront pas   définir ceci, et certains fournissent la possibilité de modifier HTTP_REFERER en tant que   fonctionnalité. En bref, on ne peut pas vraiment faire confiance.

<*>SERVER['HTTP_REFERER']); } else { header("Location: index.php"); } exit;

Il n’existe aucun moyen fiable de vérifier cela. C'est vraiment sous la main du client de vous dire d'où ça vient. Vous pouvez imaginer utiliser des informations de cookie ou de session uniquement sur certaines pages de votre site Web, mais vous risqueriez de rompre l'expérience utilisateur avec les signets.

Il ne nous reste qu'une seule option après avoir lu tous les problèmes de faux référent: c'est à dire. La page que nous souhaitons suivre en tant que référent doit être conservée en session et ajax appelée, puis en vérifiant la session si elle a une valeur de page de référent et effectuant l'action d'une autre manière, aucune action.

Alors qu'il demande une page différente, définissez la valeur de la session de référence sur null.

N'oubliez pas que la variable de session est définie sur la demande de page souhaitée uniquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top