Ενότητα 6 · 6.3
Ασφάλεια πληρωμών: PCI και απάτη
Ενότητα 6: Διαχείριση και ασφάλεια · Χρόνος ανάγνωσης: 11 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να εξηγήσετε γιατί ένα κατάστημα δεν επεξεργάζεται ποτέ το ίδιο στοιχεία κάρτας, τι σημαίνουν τα PCI DSS και SAQ A για ένα μικρό κατάστημα, πώς προστατεύετε τη σελίδα ολοκλήρωσης αγοράς και πώς αναγνωρίζετε και περιορίζετε την απάτη και το card testing.
Βασικές έννοιες: PCI DSS, στοιχεία κάρτας, πάροχος πληρωμών, ανακατεύθυνση στη σελίδα πληρωμής, ενσωματωμένη φόρμα πληρωμής (iframe), SAQ A, scripts στη σελίδα ολοκλήρωσης αγοράς, e-skimming, https, HSTS, card testing, rate limiting, captcha, 3-D Secure, αντιλογισμός χρέωσης (chargeback), κίνδυνος απάτης
Τα στοιχεία κάρτας δεν ανήκουν στο κατάστημά σας
Ένας αριθμός πιστωτικής κάρτας, η ημερομηνία λήξης και ο κωδικός ασφαλείας αξίζουν χρυσάφι για τους εγκληματίες. Όποιος τα αποθηκεύει ή τα διαβιβάζει υπάγεται στο PCI DSS (Payment Card Industry Data Security Standard), το πρότυπο ασφαλείας των εταιρειών καρτών. Η τρέχουσα έκδοση είναι η v4.0.1. Για μια επιχείρηση που επεξεργάζεται η ίδια στοιχεία κάρτας, αυτό σημαίνει ένα μεγάλο πακέτο απαιτήσεων: διαχωρισμό δικτύου, αρχεία καταγραφής, σαρώσεις, ελέγχους από αναγνωρισμένο φορέα.
Ένα μικρό κατάστημα δεν θέλει να μπει σε αυτό, και δεν χρειάζεται. Ο σταθερός κανόνας: τα στοιχεία κάρτας δεν μπαίνουν ποτέ στο κατάστημά σας. Ο πελάτης τα πληκτρολογεί στον πάροχο πληρωμών σας (Mollie, Stripe, PayPal, WooPayments ή άλλον, μάθημα 4.4). Το κατάστημα μαθαίνει στη συνέχεια μόνο αν πληρώθηκε ή όχι, μαζί με έναν κωδικό αναφοράς. Κανέναν αριθμό κάρτας, κανέναν κωδικό. Αυτό σημαίνει επίσης:
- ποτέ μην δημιουργείτε δικό σας πεδίο φόρμας για αριθμούς κάρτας, ούτε «προσωρινά για μια τηλεφωνική παραγγελία»·
- ποτέ μην δέχεστε στοιχεία κάρτας μέσω email, chat ή τηλεφώνου και μην τα καταχωρίζετε σε σημείωση της παραγγελίας·
- μην χρησιμοποιείτε plugin που αποθηκεύει στοιχεία κάρτας στη δική σας βάση δεδομένων.
Ανακατεύθυνση ή ενσωμάτωση: SAQ A
Τα μικρά καταστήματα αποδεικνύουν με ένα SAQ (Self-Assessment Questionnaire, ένα ερωτηματολόγιο) ότι συμμορφώνονται με το PCI DSS. Ο πάροχος πληρωμών σας το ζητά μερικές φορές. Το πιο απλό είναι το SAQ A, για καταστήματα που αναθέτουν πλήρως την πληρωμή. Υπάρχουν δύο τρόποι με τους οποίους αυτό λειτουργεί σε ένα κατάστημα:
- Ανακατεύθυνση. Μετά την «παραγγελία» ο πελάτης μεταφέρεται στη σελίδα πληρωμής του παρόχου και μετά επιστρέφει. Το κατάστημα δεν βλέπει ποτέ τα στοιχεία κάρτας, ούτε καν τη σελίδα όπου πληκτρολογούνται.
- Ενσωματωμένη φόρμα. Το πεδίο πληρωμής βρίσκεται στη σελίδα ολοκλήρωσης αγοράς σας, αλλά είναι ένα iframe (ένα τμήμα σελίδας) του παρόχου. Τα στοιχεία κάρτας πηγαίνουν από τον browser απευθείας στον πάροχο.
Από τις 31 Μαρτίου 2025 ισχύει νέα έκδοση του SAQ A. Περιλαμβάνει μια προϋπόθεση που αφορά κυρίως τον δεύτερο τρόπο: όποιος χρησιμοποιεί ενσωματωμένη φόρμα πρέπει να επιβεβαιώσει ότι ο ιστότοπός του δεν είναι ευάλωτος σε επιθέσεις με scripts που μπορούν να επηρεάσουν το σύστημα πληρωμών. Το υπόβαθρο είναι το e-skimming: ένα κακόβουλο script στη σελίδα ολοκλήρωσης αγοράς σας που διαβάζει ό,τι πληκτρολογεί ο πελάτης ή τοποθετεί ένα ψεύτικο πεδίο πληρωμής πάνω από το πραγματικό. Όποιος κάνει ανακατεύθυνση στη σελίδα του παρόχου δεν υπάγεται σε αυτή την προϋπόθεση. Ρωτήστε τον πάροχο πληρωμών σας ποιο SAQ ισχύει για τη δική σας σύνδεση· εκείνος το γνωρίζει με ακρίβεια.
Τι κάνετε σε κάθε περίπτωση:
- Κρατήστε τη σελίδα ολοκλήρωσης αγοράς λιτή. Κάθε script σε αυτή τη σελίδα μπορεί καταρχήν να διαβάζει τα δεδομένα: widgets συνομιλίας, tag managers, διαφημιστικά pixels, εργαλεία A/B testing. Φορτώνετε στη σελίδα ολοκλήρωσης αγοράς μόνο ό,τι χρειάζεται για την πληρωμή. Ένας tag manager στη σελίδα ολοκλήρωσης αγοράς είναι μια πύλη από την οποία οποιοσδήποτε έχει πρόσβαση σε εκείνον τον λογαριασμό μπορεί να προσθέσει scripts.
- Λίγα plugins, και ενημερωμένα (μάθημα 6.2). Το μεγαλύτερο μέρος του e-skimming στο WordPress μπαίνει μέσω ενός κενού ασφαλείας σε plugin ή ενός κλεμμένου κωδικού διαχειριστή.
- Μια Content-Security-Policy (μια κεφαλίδα που ορίζει από ποια domains επιτρέπεται να προέρχονται scripts) περιορίζει τη ζημιά αν παρ' όλα αυτά μπει κάτι. Αυτή είναι δουλειά για κάποιον που μπορεί να τη δοκιμάσει· μια λανθασμένη CSP χαλάει το κουμπί πληρωμής σας.
https και HSTS στη σελίδα ολοκλήρωσης αγοράς
Είναι αυτονόητο ότι όλο το κατάστημά σας λειτουργεί μέσω https (σειρά μαθημάτων WordPress, μάθημα 3.1). Για τη σελίδα ολοκλήρωσης αγοράς προστίθενται δύο πράγματα:
- Το http πρέπει να ανακατευθύνει αμέσως στο https, με μόνιμη ανακατεύθυνση (301 ή 308). Ένας πελάτης που κάποια στιγμή πληκτρολογεί
http://shop.example.com/afrekenen/δεν πρέπει να λάβει μη κρυπτογραφημένη σελίδα. - Το HSTS (HTTP Strict Transport Security) είναι μια κεφαλίδα με την οποία δίνετε εντολή στον browser να ανοίγει τον ιστότοπό σας για ένα διάστημα μόνο μέσω https. Έτσι αποτρέπετε να υποκλέψει κάποιος σε ένα ανοιχτό wifi το πρώτο μη κρυπτογραφημένο αίτημα. Ένα max-age τουλάχιστον 180 ημερών είναι ένα συνηθισμένο ελάχιστο. Ενεργοποιήστε το HSTS μόνο όταν όλα, και τα subdomains που συμπεριλαμβάνετε, λειτουργούν μέσω https: ένας browser που έχει δει HSTS αρνείται στη συνέχεια το http. Το KB 6752 εξηγεί πώς το ρυθμίζετε.
Το μικτό περιεχόμενο (ένα script ή stylesheet μέσω http σε σελίδα https) στη σελίδα ολοκλήρωσης αγοράς είναι ιδιαίτερα επικίνδυνο: ακριβώς ένα τέτοιο αρχείο μπορεί να αντικατασταθεί καθ' οδόν.
Card testing
Στο card testing οι εγκληματίες χρησιμοποιούν το κατάστημά σας για να δοκιμάσουν κλεμμένους αριθμούς καρτών. Υποβάλλουν αυτόματα εκατοντάδες μικρές παραγγελίες. Κάθε επιτυχημένη πληρωμή τούς λέει ότι μια κάρτα λειτουργεί. Εσείς καταλήγετε με έναν σωρό αποτυχημένες παραγγελίες, χρεώσεις ανά συναλλαγή, αντιλογισμούς χρεώσεων και, στη χειρότερη περίπτωση, με έναν πάροχο πληρωμών που μπλοκάρει τον λογαριασμό σας.
Πώς το αναγνωρίζετε: πολλές παραγγελίες σε σύντομο χρόνο, συχνά για το ίδιο φθηνό προϊόν, με διαφορετικά ονόματα αλλά ίδιες ή παράξενες διευθύνσεις, και πολλές με κατάσταση Αποτυχία.
Πώς το περιορίζετε:
- Rate limiting (ένα όριο στον αριθμό αιτημάτων ανά χρονικό διάστημα). Το Store API του WooCommerce, που χρησιμοποιούν τα blocks καλαθιού και ολοκλήρωσης αγοράς, έχει ενσωματωμένο rate limiting, το οποίο όμως είναι απενεργοποιημένο από προεπιλογή. Στο WooCommerce > Ρυθμίσεις > Για προχωρημένους > Δυνατότητες μπορείτε να ενεργοποιήσετε το «Rate limiting Checkout block and Store API» για την υποβολή παραγγελιών. Με κώδικα (ένα filter) μπορείτε να ορίσετε το όριο μόνοι σας· η προεπιλογή είναι 25 αιτήματα ανά 10 δευτερόλεπτα και μετρούν μόνο οι παραγγελίες και άλλες ενέργειες εγγραφής. Αν το κατάστημά σας βρίσκεται πίσω από proxy ή CDN, πρέπει να ενεργοποιηθεί η υποστήριξη proxy, αλλιώς όλοι οι επισκέπτες μετρούν ως ένας.
- Ένα captcha ή ένα παρόμοιο εμπόδιο κατά την ολοκλήρωση αγοράς. Το ίδιο το WooCommerce αναφέρει ότι rate limiting και captcha λειτουργούν καλύτερα μαζί: οι επιτιθέμενοι αλλάζουν συχνά διεύθυνση IP.
- Οι ρυθμίσεις του παρόχου πληρωμών σας. Οι πάροχοι διαθέτουν δικά τους φίλτρα απάτης και όρια. Ενεργοποιήστε τα και παρακολουθείτε τι αναφέρουν.
- Το 3-D Secure (η επιπλέον επιβεβαίωση στην εφαρμογή της τράπεζας, μέρος της ισχυρής ταυτοποίησης πελάτη στην ΕΕ) δυσκολεύει τους εγκληματίες και σε περίπτωση διαφοράς συχνά μεταφέρει την ευθύνη στην τράπεζα του κατόχου της κάρτας.
Άλλες μορφές απάτης
Δεν είναι κάθε απάτη αυτοματοποιημένη. Ενδείξεις που, όταν συνδυάζονται, δίνουν λόγο να περιμένετε λίγο πριν από την αποστολή:
- διεύθυνση τιμολόγησης και διεύθυνση παράδοσης σε διαφορετικές χώρες, ή διεύθυνση παράδοσης σε υπηρεσία προώθησης δεμάτων·
- μια πρώτη παραγγελία μόνο με ακριβά προϊόντα που μεταπωλούνται εύκολα, με επείγουσα αποστολή·
- πολλαπλές προσπάθειες με διαφορετικές κάρτες·
- ένας πελάτης που μετά την πληρωμή ζητά αποστολή σε άλλη διεύθυνση.
Ο αντιλογισμός χρέωσης (chargeback) είναι η ακύρωση μιας πληρωμής με κάρτα από την τράπεζα του πελάτη. Χάνετε το ποσό, συχνά με επιπλέον χρεώσεις, και το προϊόν έχει φύγει. Γι' αυτό φυλάξτε αποδείξεις αποστολής και παράδοσης. Μια πληρωμή iDEAL στην Ολλανδία δεν μπορούσε μέχρι σήμερα να ακυρωθεί με αυτόν τον τρόπο· πώς λειτουργεί αυτό στο Wero θα σας το πει ο πάροχος πληρωμών σας (μάθημα 4.4). Το ίδιο ισχύει για τους τρόπους πληρωμής που χρησιμοποιούνται στην Ελλάδα (κάρτα, IRIS, αντικαταβολή, PayPal): ο πάροχός σας σάς ενημερώνει τι ισχύει για τον καθένα.
Σύνοψη
- Τα στοιχεία κάρτας δεν μπαίνουν ποτέ στο κατάστημά σας: ούτε σε φόρμες, ούτε σε σημειώσεις, ούτε σε email. Τα επεξεργάζεται ο πάροχος πληρωμών. Αυτό ισχύει εξίσου για τις πληρωμές με κάρτα σε ένα ελληνικό κατάστημα.
- Η ανακατεύθυνση στη σελίδα πληρωμής ή ένα ενσωματωμένο πεδίο του παρόχου σάς κρατά στο πιο απλό ερωτηματολόγιο PCI (SAQ A)· με ενσωματωμένο πεδίο η σελίδα ολοκλήρωσης αγοράς σας πρέπει να προστατεύεται από επιθέσεις με scripts.
- Κρατήστε τη σελίδα ολοκλήρωσης αγοράς λιτή, μέσω https με 301 από το http και με HSTS τουλάχιστον 180 ημερών.
- Το card testing το περιορίζετε με rate limiting (απενεργοποιημένο από προεπιλογή), ένα captcha και τα φίλτρα του παρόχου σας.
- Προσέχετε τις ενδείξεις απάτης και φυλάσσετε αποδείξεις παράδοσης για την περίπτωση αντιλογισμού χρέωσης.
Κουίζ
Άσκηση
Άσκηση A6.3: Είναι ασφαλής η σελίδα ολοκλήρωσης αγοράς σας; Συμπληρώστε τη διεύθυνση του καταστήματός σας και τη διεύθυνση της σελίδας ολοκλήρωσης αγοράς σας. Το πρόγραμμα ελέγχει το πιστοποιητικό, ζητά τη σελίδα ολοκλήρωσης αγοράς μέσω http (χωρίς να ακολουθήσει ανακατεύθυνση) και μέσω https (με άδειο καλάθι, δεν γίνεται καμία παραγγελία). Πράσινο αν το πιστοποιητικό είναι έγκυρο, το http ανακατευθύνει με 301 ή 308 στο https, η κεφαλίδα Strict-Transport-Security έχει max-age τουλάχιστον 180 ημερών, δεν υπάρχει μικτό περιεχόμενο και το πολύ πέντε άλλα domains φορτώνουν scripts στη σελίδα (το πρόγραμμα τα εμφανίζει). Πορτοκαλί αν δεν υπάρχει HSTS ή είναι πολύ σύντομο, αν υπάρχει προσωρινή ανακατεύθυνση (302 ή 307), περισσότερα από πέντε domains scripts ή ένας tag manager, ή ένα πεδίο αριθμού κάρτας στη δική σας HTML αντί στον πάροχο. Κόκκινο αν το https ή το πιστοποιητικό δεν είναι σωστά, αν το http δεν ανακατευθύνει ή αν scripts ή stylesheets φορτώνονται μέσω http. Ποτέ μην αποθηκεύετε οι ίδιοι στοιχεία κάρτας. Αυτός ο έλεγχος βλέπει μόνο ό,τι υπάρχει στη σελίδα χωρίς καλάθι.
Ερώτηση για εσάς (δεν ελέγχεται): το plugin πληρωμών σας ανακατευθύνει στον πάροχο ή το πεδίο πληρωμής βρίσκεται στη σελίδα σας; Ποιο SAQ λέει ο πάροχός σας ότι ισχύει;
Ένα πράσινο σημάδι σημαίνει ότι αυτός ο έλεγχος είναι τώρα σωστός, όχι ότι το κατάστημά σας είναι ασφαλές.
Περαιτέρω ανάγνωση
Τα βήματα σε έναν πίνακα ελέγχου αφορούν το WebOké· σε άλλους παρόχους η διαδικασία είναι παρόμοια.
- Δωρεάν μάθημα WordPress 3.1: Https και το certificate
- HSTS και κεφαλίδες ασφαλείας για τον ιστότοπό σας
- Υποχρεωτική ανακατεύθυνση επισκεπτών σε https
- Εγχειρίδιο DirectAdmin 6.4: Επισκέπτες πάντα προς https
- Δωρεάν μάθημα Ασφαλείς online για επιχειρηματίες 4.2: Ο ιστότοπός σας: https, HSTS και headers ασφαλείας
- Ενημερώσεις για το SAQ A (PCI Security Standards Council, στα Αγγλικά): https://blog.pcisecuritystandards.org/important-updates-announced-for-merchants-validating-to-self-assessment-questionnaire-a
- Rate limiting για το Store API (developer.woocommerce.com, στα Αγγλικά): https://developer.woocommerce.com/docs/apis/store-api/rate-limiting/
- Card testing attacks and the Store API (developer.woocommerce.com, στα Αγγλικά): https://developer.woocommerce.com/2024/12/18/card-testing-attacks-and-the-store-api/
