Sur mon site Web, j'ai intégré un script PHP qui reçoit une notification IPN et envoyez une clé de licence au client. Ce script est dans un dossier avec d'autres fichiers PHP requis par le script php ... Comment puis-je protéger ce dossier? Si je le place, un Je bloque également les notifications PayPal. P> Comment puis-je le protéger? Dois-je besoin de? P> p> .htaccess code> avec:
7 Réponses :
Il y a beaucoup de choses que vous pouvez faire: p>
Je n'ai jamais fait cela ... pour désactiver la liste des répertoires pour tous les fichiers dans un dossier, j'ai besoin de placer une .htaccess dans ce dossier avec ... Infelligore * ... c'est vrai?
J'ai essayé avec cela, mais je reçois une erreur 500 si j'essaie de parcourir le script PHP!
Si vous connaissez la propriété intellectuelle à partir duquel PayPal utilisera le script Essayez:
order deny, allow deny from all allow from [Paypal-IP]
Il n'y a pas de moyen de filtrer le domaine au lieu de l'adresse IP?
J'ai trouvé! .. Ordre Deny, Autoriser - nier de tout - Permet de. * PayPal \ .com. *
Vous pouvez trouver la liste de PayPal IP liée à ce lien: ppmts.custhelp.com / app / réponses / détail / a_id / 92
Je ne recommanderais pas de fermer tous les IP, puisque vous ne pouvez pas être sûr que PayPal conserve les demandes provenant du même IP tout le temps. S'ils décident jamais de changer de gamme IP, votre configuration va casser, probablement sans notification à vous. P>
Je pense que le script qui traite la demande PayPal est l'endroit idéal pour gérer cela - dans ce script, vous devez vous assurer que la demande vient de PayPal. Vous pouvez le faire en utilisant une URL obscure qui n'est pas facilement devinée que cela a été suggérée. p>
Si possible, examinez la configuration Secret partagée pour IPN - de cette façon, vous avez une meilleure façon de vérifier que la demande provient de PayPal, bien qu'elle soit un peu plus difficile à configurer. P>
J'espère que cela vous aide! P>
Je n'ai pas configuré le secret partagé aussi ... Maintenant, je vérifie si la monnaie, l'ammet et le courriel de l'entreprise ont raison ... et je voudrais vérifier si l'identifiant de transaction est unique ... mais à faire cette! Je dois configurer une base de données où stockez les infos pour toutes les transacions ... mais je n'ai jamais utilisé de base de données et je ne sais pas comment!
S'il vous plaît "inconnu (Google)", ne soyez pas croisé avec moi, mais ne pensez-vous pas que cela ne ferait pas de mal d'acquérir une certaine expérience avec PHP, Web et la programmation de la base de données avant de libérer des choses au public où l'argent réel est impliqué ?? ?
Vous avez raison! En fait, je n'ai pas libéré et publié rien! Mon site Web est hors ligne!
maintenant je fais cela:
Dans le dossier où est stocké le script PHP et les 2 fichiers de configuration J'ai créé un autre dossier dans lequel j'ai déplacé les 2 fichiers de configuration et où j'ai placé une .htaccess Avec le code suivant: p> maintenant Les 2 fichiers de configuration ont une bonne protection! ... mais pas le script qui reçoit les notifications!
Si j'essaie de bloquer la liste des répertoires (pour le dossier contenant le script PHP et le dossier de configuration) avec: p> Le sandbox PayPal me donne une erreur 500! p> Donc, la seule chose que je puisse faire pour protéger le script consiste à placer, à la tête de celui-ci, une condition qui vérifie les notifications provenant de PayPal.com? P> Enfin j'ai ajouté sur la tête du script PHP an Si l'instruction IF basée sur le nom de l'hôte distant: P> Si une personne est intéressée, il est également possible d'interroger $ € ['Remote_Host '] code> mais doit être configuré le fichier httpd.conf sur le serveur. p> p>
Vous pouvez limiter en toute sécurité l'accès à votre script IPN uniquement à la liste suivante des adresses IP: Ceci peut être effectué de la manière suivante: p> De cette façon, seul PayPal sera en mesure d'accéder au script IPN. P> Cette liste d'adresse IP a été plutôt stable pendant des années. Si PayPal ajoute une nouvelle adresse, vous pouvez ajouter des rapports à un courrier électronique et examiner ces cas manuellement. P> P>
Merci!!!! Il y a un moyen de faire la même chose, mais avec le domaine? En d'autres termes ... $ _Server ['Remote_addr'] renvoie l'adresse IP du serveur d'expéditeur ... et pour obtenir le domaine distant?
Les IPS sont-ils les mêmes pour Sandbox? Pourriez-vous élaborer sur quoi faire s'ils ajoutent des IPS? Merci d'avance!
La réponse a été postée en 2009. La liste est donc probablement obsolète. Vérifiez ppmts.custhelp.com/app/answers/detail/a_id/92 a>
Pourquoi vous essayez de faire cela? P>
Dans le système IPN, vous venez d'abord de rebondir les variables qui sont transmises à votre script IPN à PayPal à l'aide de CURL ou de FSHOCK OU QUELLE ... Recherchez la réponse que vous pouvez dire s'il s'agit d'une transaction valide ou non ... Quelqu'un ne peut pas simuler une variable de transaction qui n'existe pas à PayPal lui-même ... tout ce qu'ils peuvent faire, c'est de réutiliser une nouvelle information sur les transactions pour tromper votre script. Depuis qu'il existe sur PayPal, votre script supposera que c'est un paiement réussi ... p>
Vous pouvez donc empêcher cela simplement en comparant TXN_ID sur votre base de données et s'il existe déjà dans votre base de données, cela signifie que quelqu'un essaie de vous tromper à l'aide d'une transaction déjà enregistrée ... p>
Puisque vous faites ces chèques qui se soucient de ceux qui appellent ce script IPN ... Cela ne fonctionnera pas pour eux puisque vous vérifiez les variables contre PayPal et votre base de données ... P>
Dans toutes les exceptions, imprimez une belle phrase pour leur dire "Ce script est robuste! N'essayez pas de nous tromper!" P>
+1 exactement. Vous ne devriez probablement pas traiter des paiements du tout si vous ne savez pas comment faire la manipulation d'erreurs ou mettre en œuvre des protocoles selon des spécifications.
Pourquoi ajouter une sécurité du tout? C'est seulement de l'argent.
Consultez la liste de contrôle Go Live: P>
(Developer Home> Comment> API> Go Lecture Liste de contrôle) P>
Pour une liste d'adresse IP pour permettre p>
Cela devrait obtenir le chèque! Merci beaucoup pour cela! Favorisé cet article à cause de vous.
Je ne suis pas sûr que tout le monde comprenne ce que vous entendez par «Protégez ce dossier». Voulez-vous refuser la liste du contenu de ce dossier? Ou nier le public d'exécuter les deux autres fichiers PHP? Ou autre chose?