Τι είναι το CORS;

Το CORS (Κοινή χρήση πόρων μεταξύ διαφορετικών προελεύσεων) είναι ο τρόπος με τον οποίο ένας διακομιστής ενημερώνει τα προγράμματα περιήγησης ποιοι άλλοι ιστότοποι μπορούν να διαβάζουν τις απαντήσεις του. Από προεπιλογή, η JavaScript στο https://app.example.com μπορεί να στείλει ένα αίτημα στο https://api.example.com, αλλά το πρόγραμμα περιήγησης αποκρύπτει την απάντηση, εκτός αν το API απαντήσει με μια κεφαλίδα Access-Control-Allow-Origin που ορίζει την προέλευση της σελίδας ή την τιμή *.

Για οτιδήποτε πέρα από ένα απλό GET ή ένα απλό POST φόρμας, όπως ένα PUT, ένα DELETE ή ένα σώμα JSON με κεφαλίδα Authorization, το πρόγραμμα περιήγησης ζητά πρώτα άδεια μέσω προελέγχου (preflight): ενός αιτήματος OPTIONS που παραθέτει τη μέθοδο και τις κεφαλίδες που θέλει να χρησιμοποιήσει. Μόνο αν η απάντηση του διακομιστή τις επιτρέπει, αποστέλλεται το πραγματικό αίτημα.

Περιγραφή εργαλείου

Πληκτρολογήστε το URL στο οποίο στέλνει αιτήματα η σελίδα σας, την προέλευση της σελίδας, τη μέθοδο και τυχόν προσαρμοσμένες κεφαλίδες αιτήματος και, στη συνέχεια, πατήστε «Έλεγχος CORS». Ο διακομιστής μας στέλνει τα ίδια αιτήματα που θα έστελνε ένα πρόγραμμα περιήγησης και εφαρμόζει τους κανόνες του προγράμματος περιήγησης στις απαντήσεις:

  • Τον προέλεγχο (OPTIONS) με τις κεφαλίδες Access-Control-Request-Method και Access-Control-Request-Headers
  • Ένα GET με την κεφαλίδα Origin, για την ανάγνωση των κεφαλίδων CORS μιας κανονικής απάντησης

Οι έλεγχοι δείχνουν ποιος κανόνας περνά ή αποτυγχάνει, ενώ ο πίνακας παραθέτει κάθε κεφαλίδα CORS και από τις δύο απαντήσεις. Η μέθοδος που επιλέγετε δεν αποστέλλεται ποτέ, επομένως ο έλεγχος ενός τελικού σημείου DELETE δεν διαγράφει τίποτα.

Το εργαλείο αναφέρει επίσης αν θα λειτουργούσαν αιτήματα με cookies. Αυτά απαιτούν την ακριβή προέλευση αντί για * και Access-Control-Allow-Credentials: true.

Οι βοηθοί τεχνητής νοημοσύνης που είναι συνδεδεμένοι στον διακομιστή MCP Rapid Tool Set μπορούν να εκτελέσουν τον ίδιο έλεγχο ως cors_checker.

Συμβουλές

  • Τα σφάλματα CORS προέρχονται από το πρόγραμμα περιήγησης, όχι από τον διακομιστή. Ένα αίτημα που λειτουργεί στο curl ή στο Postman μπορεί και πάλι να αποκλειστεί στο πρόγραμμα περιήγησης, επειδή αυτά τα εργαλεία δεν εφαρμόζουν το CORS.
  • Αν ο προέλεγχος λάβει απάντηση 401 ή 404, ο διακομιστής αντιμετωπίζει το OPTIONS σαν κανονικό αίτημα. Επιτρέψτε τη διέλευση των προελέγχων πριν από τους ελέγχους ταυτοποίησης.
  • Όταν ο διακομιστής επιλέγει την επιτρεπόμενη προέλευση ανά αίτημα, θα πρέπει επίσης να στέλνει Vary: Origin, διαφορετικά ένα CDN μπορεί να εξυπηρετήσει την απάντηση ενός ιστότοπου σε κάποιον άλλο.