Se connecter / S'enregistrer
Votre question

[PHP] Sécuriser en utilisant la page précédente

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
7 Novembre 2006 02:27:58

Bonjour à tous et toutes,

Voici ce qui me pose souci : j'ai besoin de m'assurer qu'un paiement (par Paypal en l'occurence) a bien été effectué avant d'effectuer une action précise.
J'avais donc l'intention d'utiliser $_SERVER['HTTP_REFERER'] pour m'assurer que la page précédent ma page de validation était bien une de Paypal. Sauf que $_SERVER['HTTP_REFERER'] est vide lorsque j'essaye...

Quelqu'un saurait-il me dire pourquoi ça ne marche pas (mais j'ai ma petite idée) et/ou me donner une solution ?

Merci d'avance !

Autres pages sur : php securiser utilisant page precedente

a c 145 L Programmation
7 Novembre 2006 10:24:42

Déjà, ça ne marche pas parce que tous les clients ne renvoient pas le referrer, ensuite parce que tu écris mal referrer et enfin parce que tu fais ça n'importe comment.
Paypal t'autorise à avoir une page de retour particulière, lis donc la doc sur les API Paypal.
7 Novembre 2006 19:19:14

Je cherchais une aide, pas une engueulade. Tu ne réponds en aucun cas à ma question, et ce ton est quelque peu méprisant, sans aucune raison.
Et puis referer est bien écrit, désolé de te décevoir.

Mis à part ça, tu parles du champ "return" sous Paypal ?
Contenus similaires
8 Novembre 2006 08:00:33

Citation :

Paypal t'autorise à avoir une page de retour particulière, lis donc la doc sur les API Paypal.


C'est pas une réponse ca ?
a c 145 L Programmation
8 Novembre 2006 09:40:49

apapeur10 a dit :
Je cherchais une aide, pas une engueulade. Tu ne réponds en aucun cas à ma question, et ce ton est quelque peu méprisant, sans aucune raison.
Et puis referer est bien écrit, désolé de te décevoir.

Au temps pour moi, REFERER est effectivement bien écrit, mais pour le reste j'ai raison, que ce soit sur le fond ou la forme: Paypal est un système très évolué, il est capable de te renvoyer l'information comme quoi l'utilisateur a payé, et c'est bien plus sécurisé qu'un hypothétique http_referer que beaucoup de personnes peuvent simuler.

plus d'infos à https://www.paypal.com/fr_FR/FR/pdf/PP_WebsitePaymentsS...
9 Mai 2008 16:49:01

Petit up car les réponses ne me semblent pas satisfaisantes. (ou alors j'ai mal compris^^)
Paypal propose d'accéder à une page après avoir payé mais n'empêche pas quelqu'un ayant l'url d'y aller sans payer.
D'où l'idée de l'utilisation de la page précédente.
Du coup y-a t'il un moyen de protéger ces pages comme avec allopass qui fournit un script à insérer sur la page de destination?
Ou alors avec referer comme supposé au début?
Ou est-ce impossible?!
9 Mai 2008 17:06:46

rien compris, les explications données au dessus sont suffisantes.
10 Mai 2008 12:52:56

Je re-explique!
Quand on utilise allopass on peut faire payer l'accès à une page web.
Mais allopass fournit aussi un script à insérer dans cette page qui empêche quelqu'un qui a son url d'y accéder sans avoir payé...
Alors que paypal ne propose pas ce genre de script: Si quelqu'un trouve l'url de cette page et l'entre dans son navigateur rien ne l'empêche d'y accéder..
En tout cas c'est ce que je comprends en me référant à la doc de paypal.
Questions :
-Est-ce que je me trompe et paypal interdit d'une façcon ou d'une autre l'accès à la page payante? ->dans ce cas j'ai besoin d'expliquations car ce n'est pas ce que j'ai compris.

-Est-ce que quelqu'un sait comment faire marcher "referer" avec la page de paiement paypal?

-Si rien de tout ça ne marche y-a t'il une solution pour protéger efficacement ses pages payantes et de ne les rendre accessible qu'en payant?

Ps: Je me permet poser ces questions car les réponses proposées datent de plus d'un an...De plus l'avis d'une personne n'est pas suffisant pour être certain du fonctionnement de paypal, j'attends donc de savoir si d'autres personnes ont d'autres avis...
10 Mai 2008 14:04:11

et la doc de paypal ne te satisfait pas ?
Paypal à forcement un system de session afin de savoir si l'user à payer ou non, et de renvoyé la page concerné, as tu fais des test aumoins ?
10 Mai 2008 14:40:01

Dans la doc de paypal ils ne parlent jamais de script à insérer dans la page cible.
Si on ne modifie pas le code source de cette page ou un fichier htaccess elle ne risque pas d'être protégée par paypal (non?)
J'ai lu la doc de paypal et en effet si on passe par paypal pour accéder à la page pas de problème!
Mon souci est que quelqu'un qui aurait récupéré l'url de celle-ci puisse y accéder quand il veut.
Si quelqu'un connait le fonctionnement précis de paypal qu'il me dise si il existe réellement une protection.
Ps: J'attends la réponse de paypal mais ça risque de prendre du temps...
9 Juin 2009 22:31:06

Bonjour,

Je me permet un petit up sur ce post parce que j'ai le même problème, c'est a dire que je ne vois pas de moyen de sécuriser la page de success en cas de bon paiement.

y a t'il un moyen d'empêcher une personne d'accéder à la page de success s'il n'a pas payer ?

Je connais les variables :
<input type="hidden" name="return" value="http://success.fr">
<input type="hidden" name="cancel_return" value="http://annul.fr" />

mais si le mec annule la transaction et qu'il entre manuellement l'url http://success.fr il peu y accéder, comment le restreindre ?

Pour information $_server['http_referer'] peu ne rien renvoyer dans certain cas a cause de firewal ou autre antivirus donc cette solution n'est pas viable, il ne faudrait pas qu'une personne n'accède pas à la page de succès car elle a un antivirus ;) 

Merci pour votre aide.
18 Novembre 2009 15:35:03

J'ai exactement le même problème. Je voudrais savoir comment déclancher une action suivant si le paiement a été effectué ou non. Car comme cité plus haut, si la personne connais l'url directe et qu'il la rentre manuellement pas bon....

J'ai également testé avec le
  1. <?php echo echo $_SERVER['HTTP_REFERER'] ; ?>
qui ne marche malheuresement pas. Message d'érreur.

Quelqu'un a une solution svp?? sachant que j'ai un serveur dédié, j'ai donc accés au php.ini si besoin...


Merci d'avance
23 Novembre 2009 14:44:49

Merci, mais ca ne m'aide pas beaucoup :??: 
23 Novembre 2009 16:02:28

Bonjour,

C'est un bon petit casse tête que voilà :) 

Tu as ton propre serveur dédié, bien, as-tu pensé à faire de l'url rewriting avec apache ?

Je sais pas si cela te sera utile mais sait-on jamais :) 

Bon courage
23 Novembre 2009 16:36:59

Si je comprend encore un temps soit peu les choses, une personne veux effectuer sont payement, elle le fait et se retrouve sur la page success.php.

Sur cette page la question est de savoir si la personne qui y accède directement à belle et bien effectué un payement.

Effectivement quels sont les données que tu envoi à PayPal pour valider cette transaction et comment PayPal te signal que la demande detransastion à réussi ?

Que nous dit la doc de PayPal :
Citation :
La Notification instantanée de paiement vous permet de recevoir des informations sur les
transactions. La NIP publie les informations liées aux différentes transactions sur une URL
de votre site programmée pour traiter ces données entrantes. Pour utiliser la NIP, vous devez
l’activer, car par défaut elle est désactivée.


Citation :
2. PayPal publie les variables HTML FORM dans un programme sur une URL que vous avez
spécifiée. Vous pouvez spécifier cette URL soit dans vos Préférences soit avec la variable
notify_url pour chaque transaction. Cette publication est au coeur de la Notification
instantanée de paiement. Cette notification comporte les informations de paiement de
votre client (par exemple, nom du client, montant). Toutes les variables possibles dans les
publications NIP sont détaillées dansle Guide d’intégration de la gestion des commandes.
Lorsque votre serveur reçoit une notification, il doit traiter les données entrantes.
3. Votre serveur doit ensuite valider la notification pour garantir qu’elle est fiable. Pour en
savoir plus, reportez-vous au Guide d’intégration de la gestion des commandes.


Enfin voilà, crazycat@idn l'avait déjà dit (écrit), faut lire la doc et la lire jusqu'au bout. D'accord c'est chiant de lire, on peux le comprendre, mais bon c'est chiant de répondre à des posts juste parceque vous n'êtes pas foutu de faire un effort pour vous-même ...

PayPal ira sur une page dont vous lui avez indiqué l'adresse (ex. : "ma_super_page_secrete_pour_paypal.php") et vous vous inquiété pour la personne qui va entrer l'adresse de votre "success.php" ... M'enfin ! comme dirait notre ami Gaston ^_^ mdr
Les traitements se font sur deux pages distinctes !!!
Sur votre success.php vous allez vérifier si vous avez reçu une confirmation POSITIVE (faut-il vous le préciser) et selon le résultat vous remerciez la personne ou vous vous excusez en lui indiquant que la transaction PayPal n'a pas été effectuée ...

C'est ce que j'ai compris de 2 minutes de lectures en diago pendant que je mettais mon site à jour ...
J'ai peut-être mal compris et dans ce cas je m'en excuse.

Bon courage pour votre site,
Bonne chance surtout ^_^ lol pdr
23 Novembre 2009 17:26:57

re,

J'ai bien lu la doc paypal. mais à aucun endroit ils te parlent de vérification de validation de paiement.

Il y a bien une variable "return"

  1. <input name="return" type="hidden" id="return" value="http://localhost/monsite/verif-paiement.php" />


qui te permet de retourner sur une page après paiement. Mais là ou ca bloque c'est que sur cette page "verif-paiement.php" on ne sais pas quoi y insérer.

La variable "notify_url" sert seulement à récupérer les infos du clients, et non pas à vérifier si son paiement a bien été accépté ou pas (enfin si j'ai bien compris).

Je penses qu'il n'y a pas de solution.



23 Novembre 2009 19:27:35

J'arrive pas à croire que tu es lu quoi que se soit :

Dans le Guide d’intégration de la gestion des commandes :
Citation :
Chapter 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 9
Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Differences between Payment Data Transfer (PDT) and Instant Payment Notification (IPN) 10
SSL Not Required for IPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
PayPal-Supported Transactional Currencies . . . . . . . . . . . . . . . . . . . . . . . . 11

Chapter 2 Payment Data Transfer (PDT) . . . . . . . . . . . . . . . .13
How PDT Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Enabling Payment Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Getting and Using the Identity Token . . . . . . . . . . . . . . . . . . . . . . . . . . 18
PDT and PayPal Account Optional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
PDT Notification Synch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Constructing the POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
PayPal Response to POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
PDT and Auto Return: Messaging to Buyer . . . . . . . . . . . . . . . . . . . . . . . 21
Preventing Fraud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Sample Code for PDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Chapter 3 Instant Payment Notification (IPN) . . . . . . . . . . . . .23
About IPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Setting Up IPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Activating IPN for Your PayPal Account . . . . . . . . . . . . . . . . . . . . . . . . . 24
Setting Up an IPN-Processing Program . . . . . . . . . . . . . . . . . . . . . . . . . 25
Using IPN Notification Validation to Help Prevent Fraud. . . . . . . . . . . . . . . . . . . 26
Using Shared Secrets for Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Using Postbacks for Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Using IPN with Multiple Currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
payment_gross and payment_fee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Examples of Multi-currency IPN Variables. . . . . . . . . . . . . . . . . . . . . . . . 29
Dispute Notification and Downloadable Dispute Report . . . . . . . . . . . . . . . . . . . 31
Downloadable Dispute Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Chapter 4 Transaction History and Reporting Tools . . . . . . . . . .35
Using Monthly Account Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Searching History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Basic Searching by Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Advanced Searching by Field Value . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Specifying Date Ranges for Basic and Advanced History Search . . . . . . . . . . . . 40
Downloading History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Selecting Which Fields to Include in the Download . . . . . . . . . . . . . . . . . . . 43
Understanding the Status and Life Cycle of Transactions . . . . . . . . . . . . . . . . 46
Reconciling Transactions using the Balance Impact Column . . . . . . . . . . . . . . 46
Reconciling Transactions Using the Net Amount Column . . . . . . . . . . . . . . . . 47
Reporting Disputed Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Programmatic Access to Dispute Report . . . . . . . . . . . . . . . . . . . . . . . . 48

Bonne lecture ...
24 Novembre 2009 09:07:30

Citation :
à aucun endroit ils te parlent de vérification de validation de paiement


Merci mais je l'ai lu et relu. J'ai passé 1 journée entierre à le lire.

J'ai remarqué sur les forum en général on a tendence à donner des urls sans réponses précises, et à supposer que les gens n'ont pas tendance à lire ce que l'on post.

Donc merci mais j'ai déjà fouillé sur le site paypal pendant un sacré bout de temps, 1 journée à fouiller cette fichu doc qui ne m'apporte rien.

Alors je lance un UP car aucune réponse concrète. SVp si quelqu'un a une solution plus détaillée et non pas "lire ce truc www.blablabla"

Merci d'avance
25 Novembre 2009 09:04:35

J'ai enfin trouvé un système. La variable "notify_url" ne sert strictement à rien. j'ai utilisé la variable "url_return" qui redirige sur un ipn.php généré ici: https://www.paypaltech.com/SG2/scriptparse.php

Et ca marche niquel. Même en tapant l'url directe, la requete ne se fait que suivant les réponses de l'ipn.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS