web-dev-qa-db-fra.com

Certificats-cadeaux en ligne: des systèmes pour éviter la fraude

Quelles sont les bonnes méthodes pour éviter la fraude avec les chèques-cadeaux électroniques (ceux qui sont créés et les informations distribuées électroniquement via un site Web)?

Je souhaite auditer/redéfinir un système existant et obtenir un bon aperçu des éléments du système qu'il serait bon de mettre en place pour réduire la fraude.

Quelques parties que je peux penser et qui m'intéressent pour commencer:

  • Critères de rejet
  • Critères de repérage (par exemple, si la date entre l'achat et l'utilisation est énorme, différents pays d'origine, etc.)
  • Indications de vol
  • Prévention des attaques Oracle sur un système de cartes-cadeaux (par exemple, essayer de manière aléatoire des authentifications de certificats-cadeaux jusqu'à ce que l'une d'entre elles fonctionne)
  • Données à inclure dans le certificat-cadeau pour une authentification ultérieure.
  • Systèmes d'authentification permettant de vérifier que les certificats-cadeaux correspondent bien.
  • etc

Je ne pense pas que le sujet soit très important (à moins qu'il y ait des bibliothèques dans lesquelles se renseigner?), Mais je gère un site avec un backend php.

6
Kzqai

Quelques bonnes pratiques à considérer:

Créez des clés de certificat uniques et difficiles à deviner

Les clés devraient être difficiles à deviner même si cela signifie qu'elles sont également plus difficiles à taper. Vous voudrez peut-être envisager random.org de générer de véritables clés alphanumériques aléatoires à l'aide de leur api HTTP . Le site génère les algorithmes de génération de chaînes pseudo-aléatoires que les langages de programmation utilisent avec le bruit atmosphérique, censé générer des nombres "aléatoires" moins difficiles à deviner.

Il existe d'autres moyens de générer des codes réellement aléatoires à l'aide de générateurs de nombres aléatoires matériels .

Sécuriser le processus de réclamation par carte-cadeau

Faites tout ce qui est en votre pouvoir pour empêcher les attaques par force brute contre les formulaires traitant vos codes de cartes-cadeaux.

Vous ne voulez pas donner aux attaquants une méthode simple pour tester les clés générées; limitez le nombre de tentatives de réclamation par code cadeau par heure, adresse IP et compte utilisateur, et obligez les utilisateurs à s'inscrire et à se connecter pour tenter une réclamation. Il est plus facile de bloquer l'accès par compte d'utilisateur que par bande IP.

Envisagez de lier les codes de certificat à une adresse électronique ou à un compte.

Lorsque votre utilisateur achète une carte-cadeau et que vous lui demandez l'adresse de messagerie de son ami, vérifiez si son ami est déjà enregistré auprès de vous. Si tel est le cas, associez le code du cadeau au compte de votre ami pour qu'il ne puisse être réclamé que par cet utilisateur.

Vous pouvez également créditer directement le compte de votre ami plutôt que de générer un code clé et lui envoyer un courrier électronique pour confirmer que son compte a bien été crédité (sans lui demander de se connecter et de saisir un code cadeau). Il est difficile de craquer les codes cadeaux quand ils n'existent pas. Si l'ami n'a pas de compte, invitez-le à s'inscrire avec un lien d'inscription pré-renseignant son adresse e-mail, puis créditez son compte du montant du cadeau une fois l'inscription complétée. Encore une fois, l’idée est de supprimer la dépendance aux codes de cadeaux.

Envisagez d'expirer les cartes-cadeaux après une période déterminée

Flickr le fait avec leurs comptes cadeaux; si le code de compte offert n’est pas utilisé dans les 24 mois, le montant du cadeau est remboursé à l’acheteur. Cela évite que des centaines de codes en veille ne traînent sur le système, car ils pourraient être comparés à un code supposé.

Utilisez un processus d'activation pour les certificats-cadeaux physiques

Les codes seront préimprimés (et masqués à l'aide d'une feuille), mais ils devraient rester inactifs jusqu'à la fin du point de vente. Les cartes de chèques cadeaux iTunes sont activées aux caisses, par exemple, ce qui les rend beaucoup moins attrayantes pour les voleurs à l'étalage.

Sécuriser le système de messagerie

Envoyez un e-mail transactionnel contenant des codes de bon d'achat via des serveurs de messagerie que vous êtes le seul à utiliser et auquel vous seul pouvez accéder. Envisagez de supprimer par défaut toutes les copies du courrier sortant pouvant être stockées sur ce serveur.

Suivre les codes réclamés et les rendre inutilisables

Naturellement, suivez les codes réclamés et marquez-les comme tels pour vous assurer qu'ils ne seront pas réutilisés.

Verrouillez vos serveurs, puis créez et suivez une politique de sécurité

Utilisez de bons mots de passe, corrigez le logiciel de votre serveur, affectez les codes de demande et de revendication uniquement via HTTPS, puis écrivez et respectez une politique de sécurité judicieuse. Rendre votre système de cartes-cadeaux pare-balles est une perte de temps si les systèmes dont il dépend sont vulnérables.

4
Nick

Chaque chèque-cadeau est également associé à un numéro PIN. Le numéro PIN ne doit pas être affiché avec le certificat-cadeau (c’est-à-dire qu’il n’apparaîtra jamais sur la même page ou le même courrier électronique). Cela empêchera les fouineurs d'obtenir les deux informations. Ils devraient intercepter la page Web et le courrier électronique pour réussir à voler un chèque-cadeau en ligne. Cela se fait généralement avec des cartes-cadeaux émises par des détaillants physiques qui vendent également des produits en ligne.

Si vous voulez vraiment lutter contre la fraude, vous pouvez essayer de créer vos numéros de chèques-cadeaux afin de réussir les vérifications d'algorithmes comme Algorithme de Luhn . Cela empêcherait les utilisateurs de générer ou d'entrer des numéros aléatoires et des codes PIN dans le but de forcer brutalement un numéro de certificat-cadeau. Vous pouvez en savoir plus sur l'algorithme de Luhn et voir exemples de code pour créer et valider plusieurs langues sur Wikipedia. Il y a aussi une bibliothèque PHP librement disponible.

Je ne percevrais pas l'utilisation tardive d'un chèque-cadeau comme un drapeau rouge ou une raison potentielle de le refuser, car il est très normal que les utilisateurs attendent un peu avant de l'utiliser. Ils peuvent oublier qu’ils l’ont ou simplement ne pas vouloir l’utiliser lorsqu’il leur est présenté pour la première fois. La seule raison pour laquelle vous souhaitez éventuellement annuler un certificat-cadeau est que vous souhaitez encourager son utilisation dans un délai spécifié. Si tel est le cas, je recommande d'attendre au moins six mois avant de désactiver un chèque-cadeau, car cela vous laisse tout à fait ouvert pour un débit de paiement ( disclaimer, I a écrit cet article ).

2
John Conde