Οι προεπιλογές μπορούν να σας βυθίσουν
TL;DR: Αντιμετωπίστε τις άγνωστες απαντήσεις ως μη εξουσιοδοτημένες, όχι ως έγκυρες.
Σήμερα είναι ημέρα ασφάλειας υπολογιστών και κάθε προγραμματιστής πρέπει να αναγνωρίσει την ευθύνη του.
Φανταστείτε μια εφαρμογή που χειρίζεται πωλήσεις που βασίζεται σε ομάδες απόκρισης από επεξεργαστές πιστωτικών καρτών για τη διαχείριση των συναλλαγών.
Κάθε επεξεργαστής πιστωτικών καρτών παρέχει προκαθορισμένους κωδικούς απόκρισης για διάφορες καταστάσεις, όπως ανεπαρκές υπόλοιπο ή ληγμένες κάρτες.
Το ζήτημα ξεκινά όταν ένας επεξεργαστής προσθέτει έναν νέο κωδικό απόκρισης για συναλλαγές που έχουν απορριφθεί, αλλά δεν ειδοποιεί την πλατφόρμα.
Η εφαρμογή δεν αναγνωρίζει τον νέο κωδικό, τον αντιμετωπίζει από προεπιλογή ως "δεν βρέθηκε" και εξουσιοδοτεί την αγορά.
Οι χρήστες παρατηρούν αυτό το ελάττωμα και το εκμεταλλεύονται για να κάνουν μη εξουσιοδοτημένες αγορές.
Τα έσοδα της πλατφόρμας πέφτουν κατακόρυφα, οδηγώντας σε χρεοκοπία.
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; default: // Authorize purchase break; }
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "APPROVED": // Authorize purchase break; case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; case "DECLINED_NEW_REASON": // Handle new declined reason break; default: // Reject purchase (default case for unknown responses) break; }
Μπορείτε να εντοπίσετε αυτή τη μυρωδιά ελέγχοντας τη λογική διαχείρισης σφαλμάτων.
Ελέγξτε εάν το σύστημα καταγράφει και απορρίπτει μη αναγνωρισμένες περιπτώσεις.
Οι αυτοματοποιημένες δοκιμές μπορούν να σας βοηθήσουν να προσδιορίσετε εάν νέες ή μη αναμενόμενες εισροές προεπιλογή για έγκυρες ενέργειες.
Τα εργαλεία στατικής ανάλυσης μπορούν να βοηθήσουν επισημαίνοντας τον δυνητικά ατελή χειρισμό σφαλμάτων.
Είναι σημαντικό να διατηρείτε μια αλληλογραφία ένας προς έναν μεταξύ της εσωτερικής αναπαράστασης των απαντήσεων του επεξεργαστή πληρωμών της εφαρμογής σας και των πραγματικών κωδικών που επιστρέφονται από τον επεξεργαστή.
Όταν σπάτε το Bijection , δημιουργείτε μια αναντιστοιχία.
Η εφαρμογή ερμηνεύει άγνωστους κωδικούς εσφαλμένα, οδηγώντας σε απροσδόκητη συμπεριφορά, κενά ασφαλείας και δυνητικά καταστροφικές επιχειρηματικές συνέπειες.
Τα εργαλεία τεχνητής νοημοσύνης μπορούν να δημιουργήσουν αυτήν τη μυρωδιά αν δεν προσδιορίσετε πώς να χειρίζεστε άγνωστες περιπτώσεις.
Για παράδειγμα, ο γενικός χειρισμός σφαλμάτων ενδέχεται να έχει ως προεπιλογή καλοήθη αποτελέσματα όπως "δεν βρέθηκε" ή "επιτυχία".
Οι γεννήτριες τεχνητής νοημοσύνης μπορούν να διορθώσουν αυτή τη μυρωδιά όταν τους δίνετε εντολή να αντιμετωπίζουν άγνωστες περιπτώσεις ως μη εξουσιοδοτημένες και δίνουν έμφαση στην καταγραφή και τη δοκιμή απροσδόκητων σεναρίων.
Θυμηθείτε: Οι Βοηθοί AI κάνουν πολλά λάθη
Χωρίς κατάλληλες οδηγίες | Με συγκεκριμένες οδηγίες |
---|---|
Να χειρίζεστε πάντα άγνωστες περιπτώσεις με προσοχή.
Προεπιλογές όπως "δεν βρέθηκε" μπορεί να οδηγήσουν σε σοβαρά ζητήματα ασφάλειας και οικονομικές απώλειες.
Κάντε την καταγραφή και την άρνηση άγνωστων απαντήσεων μέρος των πρακτικών ανάπτυξής σας.
Λάβετε αποφάσεις μετατόπισης προς τα αριστερά που σχετίζονται με την ασφάλεια κατά τον προγραμματισμό.
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
Το Code Smells είναι η γνώμη μου.
Φωτογραφία της Nathana Rebouças στο Unsplash
https://www.youtube.com/watch?v=J2QOejhA6ek
Οι υποθέσεις είναι η μητέρα όλων των αποτυχιών.
είπε ο Ouissal
Τεχνολογία Λογισμικού Υπέροχες προσφορές
Αυτό το άρθρο είναι μέρος της σειράς CodeSmell.