Ο ασφαλής τρόπος για να δώσετε πρόσβαση σε δεδομένα επιχείρησης σε έναν AI πράκτορα είναι να κάνετε τον πράκτορα πελάτη του επιχειρηματικού συστήματος αντί για χρήστη με κωδικό πρόσβασης. Ο πράκτορας συνδέεται ως ονομαστικό άτομο μέσω μιας τυπικής σύνδεσης, του προσφέρονται μόνο τα εργαλεία που επιτρέπει ο ρόλος αυτού του ατόμου, κάθε κλήση ελέγχεται ξανά από το σύστημα κατά την εκτέλεση, υπάρχει όριο στο τι μπορεί να ξοδέψει και αφήνει ένα αρχείο κάθε ενέργειας που αποδίδεται σε αυτό το άτομο. Όταν οποιοσδήποτε από αυτούς τους ελέγχους δεν μπορεί να γίνει, η πρόσβαση απορρίπτεται αντί να θεωρείται δεδομένη.
Τίποτα από αυτά δεν υπάρχει στην προτροπή. Οι οδηγίες προς το μοντέλο είναι χρήσιμες για τη συμπεριφορά και άχρηστες για την ασφάλεια, επειδή το μοντέλο μπορεί να πειστεί να τις παραβλέψει από ένα έγγραφο που διαβάζει. Οι έλεγχοι πρέπει να επιβάλλονται από το σύστημα που κρατά τα δεδομένα, σε κάθε κλήση, ανεξάρτητα από το τι πιστεύει ο πράκτορας ότι του έχει ειπωθεί.
Η αρχιτεκτονική: ο πράκτορας είναι πελάτης, το σύστημα είναι η αρχή
Ξεκινήστε με τη μορφή, γιατί τα περισσότερα από τα λάθη είναι λάθη μορφής. Ένα άτομο ζητά κάτι από τον πράκτορά του. Ο πράκτορας αποφασίζει ποια εργαλεία να καλέσει. Κάθε κλήση περνά μέσα από ένα επίπεδο αδειών που ανήκει στο επιχειρηματικό σύστημα, όχι στον πράκτορα, και μόνο τότε φτάνει σε ένα module όπως τα οικονομικά ή το CRM. Ο πράκτορας δεν αγγίζει ποτέ τη βάση δεδομένων, δεν κρατά ποτέ διαπιστευτήριο βάσης δεδομένων και δεν βλέπει ποτέ ένα εργαλείο που το άτομό του δεν θα μπορούσε να χρησιμοποιήσει.
Το αίτημα περνά από το άτομο στον πράκτορά του, στη συνέχεια μέσω του επιπέδου αδειών, πριν φτάσει σε οποιοδήποτε module. Το επίπεδο φιλτράρει τι προσφέρεται στον πράκτορα και ελέγχει τι καλεί. Ο πράκτορας μπορεί να χρησιμοποιήσει μόνο τα εργαλεία που επιτρέπεται να χρησιμοποιήσει το άτομό του, στα αρχεία που μπορεί να δει το άτομό του.
Η αρχή κάτω από την εικόνα είναι μία πρόταση: ο πράκτορας ενεργεί με την εξουσία του ατόμου που εκπροσωπεί, και ποτέ περισσότερο. Όλα τα υπόλοιπα σε αυτό το άρθρο είναι ένας τρόπος να κάνουμε αυτή την πρόταση αληθινή υπό πίεση, όταν το μοντέλο είναι λάθος, όταν ένα έγγραφο που διαβάζει περιέχει οδηγίες, ή όταν διαρρέει ένα διακριτικό.
Η OWASP Top 10 για εφαρμογές LLM ονομάζει την αποτυχία που αποτρέπει αυτή η αρχιτεκτονική: υπερβολική εξουσία, την οποία αναλύει σε υπερβολική λειτουργικότητα (εργαλεία πέρα από ό,τι χρειάζεται η εργασία), υπερβολικές άδειες (περισσότερη πρόσβαση προς τα κάτω από ό,τι είναι απαραίτητο) και υπερβολική αυτονομία (κανένας ανεξάρτητος έλεγχος πριν από μια ενέργεια υψηλού αντίκτυπου). Οι μετριασμοί της διαβάζονται σαν μια προδιαγραφή για το επίπεδο αδειών: εκτέλεση στο πλαίσιο του χρήστη, ελαχιστοποίηση των εργαλείων και των αδειών τους, επιβολή εξουσιοδότησης στο σύστημα προς τα κάτω αντί να βασίζεστε στο μοντέλο, και απαίτηση έγκρισης ενός ατόμου για ενέργειες υψηλού αντίκτυπου.
Πέντε έλεγχοι, και πού βρίσκεται ο καθένας
Οι έλεγχοι δεν είναι νέοι; είναι οι έλεγχοι που ήδη εφαρμόζετε σε ένα άτομο με πρόσβαση στο σύστημα, εφαρμοσμένοι σε έναν πελάτη που ενεργεί για αυτό το άτομο. Ο πίνακας λέει τι απαντά ο καθένας, πού επιβάλλεται και πώς φαίνεται η αποτυχία όταν λείπει. Η στήλη τοποθεσίας είναι η σημαντική. Ένας έλεγχος που επιβάλλεται στην προτροπή είναι μια πρόταση.
| Έλεγχος | Τι ρυθμίζει | Επιβάλλεται πού | Αποτυχία όταν λείπει |
|---|---|---|---|
| Ταυτότητα | Για ποιον ενεργεί ο πράκτορας | Σύνδεση μέσω OAuth; ένα διακριτικό που εκδίδεται για αυτό το σύστημα και συνδέεται με έναν ονομαστικό χρήστη | Κοινές υπηρεσίες λογαριασμών; ενέργειες χωρίς ιδιοκτήτη; ένα διαρρεύσαν κλειδί που λειτουργεί για όλους |
| Πεδίο εφαρμογής | Τι επιτρέπεται να κάνει | Εργαλεία φιλτραρισμένα ανάλογα με τον ρόλο του ατόμου πριν προσφερθούν, και ελέγχονται ξανά σε κάθε κλήση | Ένας πράκτορας που μπορεί να διαβάσει τη μισθοδοσία επειδή το άτομο του χρειάστηκε κάποτε τον αριθμό τηλεφώνου ενός επαφής |
| Προϋπολογισμός | Πόσο μπορεί να καταναλώσει | Ένα ανώτατο όριο δαπανών ανά ενσωμάτωσης στην AI του συστήματος; όρια ρυθμού στις κλήσεις εργαλείων | Μια κακώς διατυπωμένη εργασία που τρέχει όλη τη νύχτα; ένας απεριόριστος λογαριασμός |
| Καταγραφές | Τι έκανε, με τι, και τι συνέβη | Κάθε κλήση καταγράφεται με τις εισόδους και το αποτέλεσμα, αποδίδεται στο άτομο | Δεν υπάρχει τρόπος να αναθεωρηθεί, να αναιρεθεί ή να εξηγηθεί μια ενέργεια εκ των υστέρων |
| Αποτυχία κλεισίματος | Τι συμβαίνει όταν δεν μπορεί να γίνει έλεγχος | Άρνηση, με ένα σφάλμα που μπορεί να αναφέρει ο πράκτορας | Η αμφιβολία επιλύεται υπέρ του πράκτορα; το μοντέλο αποφασίζει την εξουσία του |
| Επιβεβαίωση στις εγγραφές | Εάν ένα άτομο το βλέπει πριν συμβεί | Ο πελάτης ρωτά πριν από σημαντικές ενέργειες; το σύστημα σημειώνει ποια εργαλεία είναι σημαντικά | Χρήματα αποστέλλονται, αρχεία διαγράφονται ή μηνύματα δημοσιεύονται με βάση μια λανθασμένη οδηγία |
Έξι γραμμές για πέντε ελέγχους συν τον έναν που παρέχουν οι ίδιοι οι πελάτες του πράκτορα. Πέντε από τις έξι επιβάλλονται από το επιχειρηματικό σύστημα ή τον πελάτη, και καμία από το μοντέλο.
Ταυτότητα: συνδεθείτε ως άτομο, μέσω OAuth, ποτέ με κοινό κλειδί
Η προδιαγραφή εξουσιοδότησης του Model Context Protocol είναι ακριβής σχετικά με αυτό. Ένας απομακρυσμένος διακομιστής λειτουργεί ως διακομιστής πόρων OAuth 2.1; ο πελάτης αποκτά ένα διακριτικό μέσω μιας τυπικής ροής εξουσιοδότησης με PKCE; ο πελάτης πρέπει να δηλώσει για ποιον διακομιστή είναι το διακριτικό χρησιμοποιώντας την παράμετρο πόρου; και ο διακομιστής πρέπει να επαληθεύσει ότι κάθε διακριτικό εκδόθηκε ειδικά για αυτόν, απορρίπτοντας οτιδήποτε άλλο. Η προδιαγραφή απαγορεύει ρητά τη μεταφορά διακριτικών, όπου ένας διακομιστής αποδέχεται ένα διακριτικό που δεν εξέδωσε και το προωθεί παρακάτω, διότι καταστρέφει τόσο το ίχνος ελέγχου όσο και τα όρια εμπιστοσύνης.
Στην πράξη, αυτό σημαίνει "σύνδεση μία φορά, χωρίς κωδικό για επικόλληση". Το άτομο προσθέτει τη διεύθυνση του workspace στον πράκτορά του, αποστέλλεται σε μια κανονική σελίδα σύνδεσης, εγκρίνει τη σύνδεση και ο πράκτορας λαμβάνει έναν κωδικό που τον ονομάζει και λειτουργεί μόνο για αυτό το workspace. Οι οδηγίες της Anthropic για προσαρμοσμένους συνδέσμους στο Claude είναι να εξετάσετε τα πεδία που ζητά ένας διακομιστής, να τα περιορίσετε όπου είναι δυνατόν και να συνδεθείτε μόνο σε διακομιστές που εμπιστεύεστε. Ένας προμηθευτής που σας ζητά να επικολλήσετε ένα API key σε επίπεδο εταιρείας σε μια ρύθμιση πράκτορα έχει παραλείψει τον πρώτο έλεγχο και έχει καταστήσει τους άλλους τέσσερις πολύ πιο δύσκολους.
Πεδίο: φιλτράρετε πριν προσφέρετε, ελέγξτε ξανά κατά την εκτέλεση
Ένας πράκτορας ανακαλύπτει τι μπορεί να κάνει ζητώντας από τον διακομιστή τη λίστα εργαλείων του. Ο σωστός σχεδιασμός απαντά σε αυτή την ερώτηση ανά άτομο: η λίστα που λαμβάνει ο πράκτορας ενός λογιστή είναι διαφορετική από τη λίστα που λαμβάνει ο πράκτορας ενός διευθυντή, και καμία από τις δύο δεν περιλαμβάνει εργαλεία για ενότητες που δεν μπορεί να δει ο ρόλος τους. Αυτή είναι η συμβουλή του OWASP για τη μείωση της λειτουργικότητας που γίνεται συγκεκριμένη, και έχει ένα δεύτερο όφελος: ένα μοντέλο που δεν έχει ποτέ δείξει ένα εργαλείο δεν μπορεί να πειστεί να το καλέσει.
Η φιλτράρισμα της λίστας δεν είναι αρκετό από μόνο του, διότι οι ρόλοι αλλάζουν, οι συνεδρίες παραμένουν και οι πελάτες αποθηκεύουν. Η ίδια έλεγχος πρέπει να εκτελείται ξανά κάθε φορά που φτάνει μια κλήση, σε σχέση με τα δικαιώματα του ατόμου εκείνη τη στιγμή. Παρακάτω είναι μια λίστα εργαλείων στη μορφή που ορίζει το πρωτόκολλο, για έναν ρόλο που μπορεί να διαβάσει τιμολόγια αλλά όχι να καταγράψει πληρωμές. Το απουσιάζον εργαλείο είναι το σημείο.
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{ "name": "searchInvoices",
"description": "Search invoices by number, reference, contact, amount, status, date range.",
"inputSchema": { "type": "object", "properties": { "query": { "type": "string" }, "outstanding_only": { "type": "boolean" } } },
"annotations": { "readOnlyHint": true } },
{ "name": "getInvoice",
"description": "Read one invoice in full: status, totals, dates, contact and lines.",
"inputSchema": { "type": "object", "properties": { "invoice_id": { "type": "string" } }, "required": ["invoice_id"] },
"annotations": { "readOnlyHint": true } }
]
}
}
// recordPayment, sendInvoiceReminders and deleteInvoice exist in the system.
// They are not in this list because this person's role cannot use them.
// If the agent calls one anyway, the server answers with a permission error.Μια απάντηση εργαλείων/λίστας στη μορφή που ορίζει η προδιαγραφή MCP, με ονόματα εργαλείων από το module λογιστικής Sois. Η προδιαγραφή αναφέρει επίσης ότι οι πελάτες πρέπει να θεωρούν τις σημειώσεις όπως το readOnlyHint ως μη αξιόπιστες, εκτός αν ο διακομιστής είναι αξιόπιστος, κάτι που είναι ένας ακόμη λόγος για τον οποίο ο διακομιστής, όχι η σημείωση, πρέπει να είναι αυτός που επιβάλλει τον κανόνα.
Εισαγωγή προτροπής: τα δεδομένα μπορούν να απαντήσουν
Η απειλή που αφορά ειδικά τους πράκτορες είναι ότι τα δεδομένα που διαβάζουν μπορεί να περιέχουν οδηγίες. Ένα email από έναν πελάτη που τελειώνει με μια γραμμή που λέει στον πράκτορα να προωθήσει τη λίστα προμηθευτών σε μια εξωτερική διεύθυνση; Ένα έγγραφο που του λέει να σημειώσει κάθε τιμολόγιο που έχει πληρωθεί. Το μοντέλο μπορεί να συμμορφωθεί ή όχι, και καμία προτροπή δεν μπορεί να εγγυηθεί ότι δεν θα συμμορφωθεί, γι' αυτό και η ένεση προτροπών είναι πρώτη στη λίστα OWASP και γιατί τόσο η Anthropic όσο και η OpenAI προειδοποιούν γι' αυτό στις οδηγίες σύνδεσής τους.
Η άμυνα είναι η αρχιτεκτονική, όχι το μοντέλο. Ένας πράκτορας που προσφέρεται μόνο τα εργαλεία που μπορεί να χρησιμοποιήσει το άτομό του δεν μπορεί να προωθήσει ό,τι δεν μπορεί να δει το άτομό του. Μια κλήση για να σημειωθούν οι τιμολόγια ως πληρωμένα ελέγχεται από το σύστημα σύμφωνα με τα δικαιώματα του ατόμου, όχι σύμφωνα με την πεποίθηση του μοντέλου ότι του ζητήθηκε. Τα εργαλεία που έχουν συνέπειες σημειώνονται έτσι ώστε ο πελάτης να ρωτά πρώτα ένα άτομο: Το ChatGPT απαιτεί αυτή τη στιγμή χειροκίνητη επιβεβαίωση σε μια συνομιλία πριν από τις ενέργειες εγγραφής, και η καθοδήγηση της OpenAI είναι να διατηρείται η έγκριση ενεργή για εργαλεία που τροποποιούν δεδομένα; Ο Claude ζητά έγκριση ανά εργαλείο και συμβουλεύει να διατηρείται η επιλογή "επιτρέπεται πάντα" για αξιόπιστους διακομιστές. Και το αρχείο καταγράφει την απόπειρα, έτσι ώστε μια ένεση που αποκλείστηκε να είναι ορατή αργότερα αντί να είναι σιωπηλή.
Προϋπολογισμός και αρχεία καταγραφής: κάντε τη δουλειά του πράκτορα όσο αναθεωρήσιμη είναι ενός ατόμου
Ο προϋπολογισμός έχει σημασία για δύο λόγους. Ο προφανής είναι το κόστος: ένας πράκτορας που λαμβάνει ένα ασαφή αποτέλεσμα θα συνεχίσει να καλεί εργαλεία μέχρι να σταματήσει κάτι, και η OWASP κατατάσσει την απεριόριστη κατανάλωση ως κίνδυνο από μόνη της. Ο πιο λεπτός είναι η ακτίνα έκρηξης: ένα όριο ανά ενσωμάτωση περιορίζει πόσα μπορεί να κάνει ένας συμβιβασμένος ή μπερδεμένος πράκτορας πριν το προσέξει κάποιος. Όταν ο δικός του πράκτορας κάνει τη λογική, το κόστος της AI βαρύνει αυτόν· όταν ο πράκτορας του συστήματος το κάνει, το όριο θα πρέπει να ορίζεται ανά ενσωμάτωση και να είναι ορατό ανά ενέργεια.
Τα αρχεία μετατρέπουν όλα αυτά από μια υπόσχεση σε κάτι που μπορείτε να ελέγξετε. Κάθε κλήση θα πρέπει να καταγράφει για ποιον ενήργησε ο πράκτορας, ποιο εργαλείο, τις εισόδους, το αποτέλεσμα και τον χρόνο, στο ίδιο μέρος που το σύστημα καταγράφει τι έκαναν οι άνθρωποι. Η δοκιμή είναι αν ένας υπεύθυνος οικονομικών μπορεί να ανακαλύψει τι έκανε ο πράκτορας στον λογαριασμό ενός πελάτη τον περασμένο μήνα το ίδιο εύκολα όπως μπορεί για έναν συνάδελφο. Η προδιαγραφή MCP ζητά από τους πελάτες να καταγράφουν τη χρήση εργαλείων για έλεγχο; Ένα επιχειρηματικό σύστημα δεν θα πρέπει να βασίζεται στον πελάτη γι' αυτό, επειδή ο πελάτης δεν είναι το σύστημα καταγραφής.
Μια λίστα ελέγχου που μπορείτε να εκτελέσετε σε οποιοδήποτε σύστημα
Φέρτε τα σε οποιονδήποτε προμηθευτή, συμπεριλαμβανομένων εμάς. Κάθε ένα είναι ναι ή όχι, και κάθε ένα έχει μια δοκιμή αντί για μια ερώτηση να κάνετε.
- Ο πράκτορας συνδέεται ως ονομαστικό πρόσωπο μέσω OAuthχωρίς κωδικό πρόσβασης σε επίπεδο εταιρείας. Δοκιμή: συνδεθείτε από έναν εξωτερικό πελάτη MCP και δείτε τι ζητά η σελίδα σύνδεσης.
- Η λίστα εργαλείων διαφέρει ανά ρόλο. Δοκιμή: συνδεθείτε ως περιορισμένος χρήστης και ως διαχειριστής και συγκρίνετε τι προσφέρεται στον πράκτορα.
- Η επαλήθευση επαναλαμβάνεται όταν εκτελείται το εργαλείο. Δοκιμή: αφαιρέστε μια άδεια από έναν συνδεδεμένο χρήστη κατά τη διάρκεια της συνεδρίας και δοκιμάστε ξανά την ενέργεια.
- Η πρόσβαση αποτυγχάνει κλειστή. Δοκιμή: καλέστε ένα εργαλείο που δεν θα έπρεπε να έχει ο ρόλος και επιβεβαιώστε ότι λαμβάνετε άρνηση, όχι αποτέλεσμα.
- Η δαπάνη μπορεί να περιοριστεί ανά ενσωμάτωση και να παρακολουθείται ανά ενέργεια. Δοκιμή: ορίστε ένα μικρό όριο και παρακολουθήστε το να δεσμεύεται.
- Κάθε ενέργεια καταγράφεται σε βάρος του ατόμου, με εισόδους και αποτέλεσμα, όπου το σύστημα καταγράφει τα πάντα. Δοκιμή: διαβάστε το αρχείο καταγραφής για μια εκτέλεση που μόλις κάνατε.
- Τα επακόλουθα εργαλεία σημειώνονται για επιβεβαίωση έτσι ο πελάτης ρωτά ένα άτομο. Δοκιμή: ρωτήστε τον πράκτορα να στείλει χρήματα ή να διαγράψει μια εγγραφή και επιβεβαιώστε ότι ρωτήσατε πρώτα.
Το Sois είναι ένα σύστημα που έχει κατασκευαστεί για να περάσει αυτή τη λίστα, και το σχήμα στην κορυφή του άρθρου είναι το σχήμα του. Ένας χώρος εργασίας είναι ένας διακομιστής MCP; οποιοσδήποτε πελάτης MCP συνδέεται προσθέτοντας τη διεύθυνση του χώρου εργασίας και συνδέεται μία φορά μέσω OAuth; τα εργαλεία φιλτράρονται ανά ρόλο πριν προσφερθούν και ελέγχονται ξανά όταν εκτελούνται; η πρόσβαση αποτυγχάνει κλειστή; οι δαπάνες μπορούν να περιοριστούν ανά ενσωμάτωση; κάθε ενέργεια καταγράφεται; και τα δίκτυα που έχουν κατασκευαστεί στην πλατφόρμα έχουν τη δική τους βάση δεδομένων, αποθήκευση, τομείς και κλειδιά. Εκτελέστε τη λίστα ελέγχου σε αυτό ούτως ή άλλως. Η αξία μιας λίστας ελέγχου είναι ότι δεν παίρνει κανενός τη λέξη.
Ερωτήσεις που κάνουν οι άνθρωποι
Είναι ασφαλές να συνδέσω τον Claude ή το ChatGPT με τα λογιστικά μου δεδομένα;
Είναι ασφαλές όταν το σύστημα που κρατά τα δεδομένα επιβάλλει τους ελέγχους: ο πράκτορας συνδέεται ως εσείς μέσω OAuth, προσφέρεται μόνο τα εργαλεία που επιτρέπει ο ρόλος σας, ελέγχεται ξανά σε κάθε κλήση και κάθε ενέργεια καταγράφεται. Και οι δύο προμηθευτές ζητούν επίσης επιβεβαίωση πριν από σημαντικές ενέργειες. Αν το σύστημα προσφέρει μόνο ένα κοινό API key, η απάντηση είναι όχι.
Μπορεί μια προτροπή συστήματος να σταματήσει έναν πράκτορα από το να διαρρεύσει δεδομένα;
Όχι. Μια προτροπή διαμορφώνει τη συμπεριφορά; δεν επιβάλλει τίποτα. Τα δεδομένα που διαβάζει ο πράκτορας μπορεί να περιέχουν οδηγίες που την παρακάμπτουν. Η ενέργεια πρέπει να είναι μία που το σύστημα θα αρνιόταν ανεξάρτητα από το τι πιστεύει το μοντέλο ότι του ζητήθηκε.
Ποια είναι η διαφορά μεταξύ της φιλτραρίσματος εργαλείων και του ελέγχου δικαιωμάτων;
Η φιλτραρίσματος αποφασίζει τι θα δει ο πράκτορας όταν ζητήσει τη λίστα εργαλείων. Ο έλεγχος αποφασίζει αν μια συγκεκριμένη κλήση επιτρέπεται τη στιγμή που φτάνει. Χρειάζεστε και τα δύο: η φιλτραρίσματος μειώνει το τι μπορεί να πειστεί το μοντέλο, ο έλεγχος πιάνει τα πάντα που η φιλτραρίσματος έχασε.
Ποιος πληρώνει για την AI όταν ο δικός μου πράκτορας κάνει τη λογική;
Εσείς, μέσω της συνδρομής του πράκτορά σας. Ένα σύστημα που έχει κατασκευαστεί με αυτόν τον τρόπο δεν εκτελεί καμία AI εκ μέρους σας σε αυτή την περίπτωση και δεν θα πρέπει να χρεώνει τίποτα γι' αυτό. Οι ανώτατες δαπάνες ισχύουν για τον δικό του πράκτορα όταν χρησιμοποιείτε αυτόν αντί γι' αυτό.
- Προδιαγραφή Πρωτοκόλλου Στοιχείου Μοντέλου: εξουσιοδότηση OAuth 2.1, PKCE, η παράμετρος πόρου, η επικύρωση κοινού του token και η απαγόρευση της διέλευσης token
- OWASP Top 10 για Εφαρμογές LLM: LLM06 Υπερβολική Αυτονομία υπερβολική λειτουργικότητα, δικαιώματα και αυτονομία, και οι μετριασμοί που εφαρμόζει το επίπεδο δικαιωμάτων
- Anthropic: ξεκινώντας με προσαρμοσμένους συνδέσμους χρησιμοποιώντας απομακρυσμένο MCP Σύνδεση μέσω OAuth, περιορισμός των ζητούμενων πεδίων, έγκριση ανά εργαλείο, σύνδεση μόνο σε αξιόπιστους διακομιστές, προειδοποίηση για εισαγωγή προτροπών
- Sois: ασφάλεια και το επίπεδο αδειών οι πέντε έλεγχοι όπως τους εφαρμόζει η πλατφόρμα: φιλτράρισμα ρόλων, έλεγχοι κατά την εκτέλεση, αποτυχία κλεισίματος, όρια δαπανών, καταγραφή, απομόνωση ενοικιαστών
Αυτό το άρθρο αναθεωρείται όταν αλλάζουν τα προϊόντα που περιγράφει. Επόμενη προγραμματισμένη αναθεώρηση: 4 Δεκεμβρίου 2026.
