J'ai une page Web sur un site Web Joomla que j'essaie de rendre inaccessible à quiconque, sauf à ceux qui ont été redirigés vers une page de redirection . Fondamentalement, ils achèteraient quelque chose sur un formulaire sur ma page qui est intégré avec Paypal, et quand le paiement Paypal est terminé, je les ai redirigés vers cette page spécifique. Je ne veux pas que quelqu'un puisse simplement copier cette adresse et être capable de revenir à la page plus tard. Y a-t-il un moyen de faire cela?Comment rendre une page Web inaccessible, sauf pour ceux qui y parviennent par une redirection
Répondre
Ensuite, vous devez stocker un "token" dans votre base de données, ce qui est invalidé après la première fois qu'un client qui revient revient à votre page "merci". Le jeton doit être donné au client (dans l'URL) lorsque vous le redirigez vers Paypal et quand il revient après un paiement valide, le jeton doit toujours être dans l'URL. Autant que je me souvienne de l'époque où j'ai essayé d'utiliser PayPal dans l'un de mes projets, il est possible de passer quelque chose comme ça à Paypal et de le récupérer.
La vérification d'une redirection est une mauvaise façon de procéder. De telles choses peuvent être facilement usurpées. Au lieu de cela, les pages dont vous avez besoin d'une redirection pour créer un enregistrement de session de quelque sorte et transmettre l'ID de cet enregistrement dans la chaîne de requête à la page restreinte. La page restreinte peut refuser si l'ID de session n'existe pas dans la base de données ou est trop ancien.
Cela fait longtemps que je n'ai pas travaillé avec Joomla. Vous pourriez être en mesure de regarder les variables du serveur et vérifier l'URL de référence. Si ce n'est pas l'une de vos pages Web ou paypal, vous pouvez rediriger l'utilisateur vers la page de votre choix.
J'inclurais un jeton spécifique sur la redirection. Peut-être un guid qui a une durée de vie limitée et est affecté à cet utilisateur spécifique.
Paypal a une fonctionnalité appelée Express Checkout qui fait exactement ce que vous cherchez.
Si vous vous souciez seulement que le lien expire peu de temps après son utilisation, alors je pense que vous devriez créer une URL unique pour le contenu que vous essayez de protéger. Demander à l'action de l'achat créer une clé unique ou un jeton, stocker la valeur du jeton sur votre serveur, puis ce jeton de référence dans votre lien:
example.com/purchased_content?token=59803475203658902345089
Lorsque la lien est cliqué, vérifiez par rapport à vos valeurs stockées. Vous pouvez les expirer en fonction des critères que vous voulez.
Si vous souhaitez également empêcher la copie de l'URL vers un autre emplacement, vous pouvez demander à l'action d'achat de définir un cookie avec la valeur de jeton. Ensuite, vérifiez le cookie lorsque le lien est cliqué. Ce n'est pas infaillible, car un utilisateur averti peut également copier le cookie.