Tom's Guide > Forum > Programmation > [PHP] Sécuriser en utilisant la page précédente

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

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

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 !

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

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 ?

Répondre à apapeur10

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 ?

Répondre à RiiMii

apapeur10 a écrit :

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 [...] nGuide.pdf


Message édité par crazycat@idn le 08-11-2006 à 09:41:16
------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

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?!

------------------------------ Jouer-Facile.com
Répondre à djon77

rien compris, les explications données au dessus sont suffisantes.

Répondre à okinou

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...

------------------------------ Jouer-Facile.com
Répondre à djon77

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 ?

Répondre à okinou

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...


Message édité par djon77 le 10-05-2008 à 14:40:46
------------------------------ Jouer-Facile.com
Répondre à djon77

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.

Répondre à morgan_bleu

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

Code :
  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


Message édité par VestaX le 18-11-2009 à 15:36:36
Répondre à VestaX

Lisez "Notification instantanée de paiement (NIP)" à la page 23 et à partir de la page 116 de https://www.paypal.com/fr_FR/FR/pdf [...] nGuide.pdf , toute la partie sur "notify_url"

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Merci, mais ca ne m'aide pas beaucoup :??:

Répondre à VestaX

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

------------------------------ - - - - - - - - -
Il est a qui hein ?
Répondre à le kiki

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

------------------------------ - - - - - - - - -
Il est a qui hein ?
Répondre à le kiki

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"

Code :
  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.



Répondre à JM-Studio

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 ...

------------------------------ - - - - - - - - -
Il est a qui hein ?
Répondre à le kiki

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

Répondre à JM-Studio

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.

Répondre à JM-Studio
Tom's Guide > Forum > Programmation > [PHP] Sécuriser en utilisant la page précédente
Aller à :

Il y a 2506 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens