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 les $_SERVER['HTTP_REFERER']
, en raison de la (manque de) fiabilité, et j'ai besoin que la page appelée appelle uniquement des requêtes provenant de mon site.
Edit: Je cherche à vérifier qu'un script qui effectue une série d'actions est appelé à partir d'une page de mon site Web.
Réponses
Trop de publicités?REFERER est envoyé par le navigateur du client dans le cadre du protocole HTTP et n’est donc pas fiable. Il se peut que ce ne soit pas là, que ce soit contrefait, vous ne pouvez pas y croire si c'est pour des raisons de sécurité.
Si vous souhaitez vérifier si une requête provient de votre site, vous ne pouvez pas le faire, mais vous pouvez vérifier que l'utilisateur s'est déjà rendu sur votre site et / ou qu'il est authentifié. Les cookies sont envoyés dans les demandes AJAX afin que vous puissiez compter sur cela.
Ce que j’ai trouvé meilleur est un jeton CSRF et enregistrez-le dans la session pour les liens où vous devrez vérifier le parrain.
Donc si vous générez un rappel FB puis il devrait ressembler à ceci :
Puis les index.php ressemblera à ceci :
Je ne connais pas de sites sécurisés que faire l’équivalent de cela pour toutes les pages sécurisées.
Il n'y a pas de moyen fiable pour 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.
Après avoir lu tous les faux problèmes de référent, il ne nous reste plus qu’une option: la page que nous souhaitons suivre en tant que référent doit être conservée en session, et ajax appelée puis en enregistrant la session si elle a la valeur de la page et en effectuant l’action autrement no action.
Tandis qu’il demande par la suite une page différente, définissez la valeur de la session de référence sur null.
Rappelez-vous que la variable de session est définie sur la demande de page désirée uniquement.