Security Guide
Οι βασικές αρχές ασφάλειας του Nutrition Hub για ρόλους, tenant isolation, sessions, secrets, protected files, server-to-server επικοινωνία, audit logs και incident response.
Οι βασικές αρχές προστασίας
Η ασφάλεια δεν βασίζεται σε ένα plugin ή μία ρύθμιση. Αποτελεί συνδυασμό σωστής αρχιτεκτονικής, ασφαλούς hosting, περιορισμένων δικαιωμάτων, ενημερώσεων και υπεύθυνης καθημερινής χρήσης.
Least privilege
Κάθε χρήστης, integration και service λαμβάνει μόνο την πρόσβαση που απαιτείται για τη συγκεκριμένη λειτουργία.
Default deny
Η πρόσβαση απορρίπτεται όταν δεν υπάρχει ρητή, επαληθευμένη εξουσιοδότηση.
Tenant isolation
Κάθε request συνδέεται με τον σωστό γιατρό, κλινική, εγκατάσταση και patient context.
Defense in depth
Οι έλεγχοι εφαρμόζονται σε UI, capabilities, REST, AJAX, file downloads, callbacks και background jobs.
Data minimization
Συλλέγονται, μεταδίδονται και καταγράφονται μόνο τα δεδομένα που είναι αναγκαία για τον συγκεκριμένο σκοπό.
Auditability
Οι σημαντικές ενέργειες διαθέτουν status, timestamp και τεχνικό reference χωρίς έκθεση secrets.
Η παρούσα σελίδα περιγράφει αρχές και τεχνικά μέτρα. Δεν αποτελεί δήλωση ISO, SOC, HIPAA ή άλλης πιστοποίησης.
Ποιος είναι υπεύθυνος για τι
| Περιοχή | Webion / Nutrition Hub | Γιατρός ή κλινική | Hosting / Providers |
|---|---|---|---|
| Plugin security | Secure development, validation, authorization και updates. | Έγκαιρη εγκατάσταση updates. | — |
| User access | Ρόλοι, capabilities και access controls. | Σωστή ανάθεση χρηστών και άμεση απενεργοποίηση αποχωρήσεων. | — |
| Hosting | Τεκμηρίωση απαιτήσεων. | Επιλογή κατάλληλου παρόχου και πακέτου. | Server hardening, uptime, backups και network controls. |
| Patient data | Τεχνικά controls και data minimization. | Νόμιμη βάση, ενημέρωση, retention και ορθότητα δεδομένων. | Υποδομή και τεχνικοί υπο-εκτελούντες όπου εφαρμόζεται. |
| Integrations | Secure connectors και credential handling. | Ενεργοποίηση μόνο των αναγκαίων integrations. | Ασφάλεια της αντίστοιχης εξωτερικής υπηρεσίας. |
Ρόλοι, capabilities και server-side authorization
Η απόκρυψη ενός menu δεν αποτελεί ασφάλεια. Κάθε sensitive action πρέπει να ελέγχει τον χρήστη και στο server.
Κλινική πρόσβαση
Πρόσβαση μόνο στους ασθενείς, appointments, notes, plans και files που αντιστοιχούν στο επιτρεπτό professional context.
Λειτουργική πρόσβαση
Ραντεβού, επικοινωνία και βασικά στοιχεία, χωρίς πρόσβαση σε clinical notes ή πλήρη κλινικό ιστορικό.
Προσωπικό portal
Πρόσβαση μόνο στα δικά του records και μόνο σε πληροφορίες που έχουν οριστεί ως ορατές.
Τεχνική διαχείριση
Χρησιμοποιείται περιορισμένα για configuration και όχι ως κοινόχρηστος καθημερινός λογαριασμός.
Κάθε sensitive action πρέπει να ελέγχει
- Authenticated user ή έγκυρο machine credential.
- Capability ή ρόλο για τη συγκεκριμένη ενέργεια.
- Tenant και installation context.
- Ownership ή επιτρεπτή σχέση με τον ασθενή ή resource.
- Nonce, session ή request signature όπου απαιτείται.
- Έγκυρα και επιτρεπτά input fields.
Οι έλεγχοι πρέπει να δοκιμάζονται και με απευθείας REST/AJAX requests, όχι μόνο από το ορατό interface.
Διαχωρισμός γιατρών, κλινικών και εγκαταστάσεων
Το Nutrition Hub χρησιμοποιεί ανεξάρτητο doctor-site μοντέλο και tenant-aware επικοινωνία με την κεντρική πλατφόρμα. Κάθε request πρέπει να δένεται με τη σωστή εγκατάσταση.
Installation identity
Κάθε WordPress site έχει μοναδικό installation ή license context.
Signed request
Τα server-to-server requests περιλαμβάνουν tenant reference, timestamp και υπογραφή.
Central validation
Η κεντρική πλατφόρμα επαληθεύει άδεια, domain, plan και επιτρεπτή λειτουργία.
Resource scoping
Τα αποτελέσματα περιορίζονται στο συγκεκριμένο tenant, doctor ή patient context.
Το tenant context επαληθεύεται από session, license ή signed server-side mapping και όχι μόνο από client-supplied field.
Σύνδεση, sessions και trusted devices
| Μέτρο | Σκοπός |
|---|---|
| Μοναδικοί λογαριασμοί | Αποφυγή shared credentials και δυνατότητα audit. |
| Ισχυροί κωδικοί | Περιορισμός brute-force και credential reuse κινδύνου. |
| Secure cookies | Μετάδοση session cookies μόνο μέσω HTTPS. |
| Session expiry | Περιορισμός μακροχρόνιας μη επιτηρούμενης πρόσβασης. |
| Trusted-device expiry | Αυτόματος καθαρισμός παλιών device references. |
| Logout / revoke | Τερματισμός sessions μετά από αλλαγή κωδικού ή περιστατικό. |
| Rate limiting | Περιορισμός επαναλαμβανόμενων login ή magic-link requests. |
Η δημόσια τεκμηρίωση πρέπει να τον παρουσιάσει ως ενσωματωμένη λειτουργία μόνο όταν επιβεβαιωθεί η πραγματική production υλοποίηση ή η επίσημα υποστηριζόμενη WordPress λύση.
API keys, OAuth tokens και license secrets
Ασφαλής αποθήκευση
Sensitive credentials αποθηκεύονται κρυπτογραφημένα ή σε προστατευμένη server-side configuration.
TLS / HTTPS
Όλες οι production συνδέσεις και callbacks χρησιμοποιούν έγκυρο HTTPS ή ασφαλές WebSocket.
Χωρίς server secrets
API secrets, OAuth client secrets και webhook secrets δεν ενσωματώνονται σε HTML ή JavaScript.
Ανάκληση και αλλαγή
Τα credentials μπορούν να ανακληθούν ή να αντικατασταθούν σε περίπτωση migration ή υποψίας έκθεσης.
Δεν αποστέλλουμε σε tickets ή screenshots
- License secret
- OpenAI API key
- Payment provider secret keys
- Webhook signing secret
- Google refresh token
- SMTP password
- WordPress administrator password
Production και staging πρέπει να χρησιμοποιούν διαφορετικά credentials όπου το επιτρέπει η integration.
Αρχεία ασθενών και ασφαλή downloads
Τα ευαίσθητα αρχεία δεν πρέπει να είναι προσβάσιμα μέσω δημόσιου, προβλέψιμου WordPress media URL.
Protected storage
Το αρχείο αποθηκεύεται σε μη δημόσιο ή ελεγχόμενο storage location.
Metadata validation
Καταγράφονται owner, patient, tenant, MIME type, size και visibility.
Download authorization
Κάθε download ελέγχει session, role, tenant και patient relation.
Controlled response
Το αρχείο μεταδίδεται μόνο μετά από επιτυχή authorization, με ασφαλή response headers.
- Allowlist επιτρεπόμενων τύπων αρχείων.
- Όρια μεγέθους upload.
- Έλεγχος πραγματικού MIME type.
- Αποφυγή executable uploads.
- Καθαρισμός orphaned files.
- Backup και retention policy.
Server-to-server επικοινωνία
| Control | Προστατεύει από |
|---|---|
| HTTPS | Υποκλοπή και αλλοίωση δεδομένων κατά τη μεταφορά. |
| HMAC ή provider signature | Πλαστογραφημένα requests και webhooks. |
| Timestamp validation | Replay παλιών signed requests. |
| Idempotency key | Διπλές χρεώσεις, emails ή event processing. |
| Input allowlist | Mass assignment και μη αναμενόμενα fields. |
| Rate limiting | Abuse, brute force και resource exhaustion. |
| Privacy-safe logging | Έκθεση payloads, secrets ή patient data σε logs. |
signature = HMAC_SHA256(
timestamp + "." + request_body,
installation_secret
)
Η ακριβής μορφή signing, header names και tolerance window τεκμηριώνεται ξεχωριστά στο API & Webhooks Reference.
Έλεγχοι ανά integration
OAuth και revocation
Signed state, ελάχιστα scopes, protected tokens και δυνατότητα disconnect/revoke.
Signed webhooks
Server-side secrets, signature validation και idempotency πριν από αλλαγή billing status.
Central proxy
Το API key παραμένει κεντρικά και εφαρμόζονται feature, quota και task allowlists.
Private channels
Server-side channel authorization και tenant-aware event routing.
Authenticated sender
SPF, DKIM, DMARC, protected credentials και privacy-safe delivery logs.
Short-lived downloads
License validation και προσωρινό download token αντί μόνιμου δημόσιου URL.
Audit logs χωρίς υπερβολική καταγραφή
Τα logs πρέπει να υποστηρίζουν troubleshooting και incident investigation χωρίς να δημιουργούν δεύτερο, μη ελεγχόμενο αποθετήριο ευαίσθητων δεδομένων.
| Μπορεί να καταγράφεται | Δεν πρέπει να καταγράφεται |
|---|---|
| Timestamp, action, status, request ID | Passwords και authentication cookies |
| User ID ή tenant-safe reference | API keys, tokens και webhook secrets |
| Error code και provider response category | Πλήρη payment card data |
| File ID και authorized action | Πλήρες κλινικό περιεχόμενο αρχείου |
| Email delivery status | Πλήρες email body όταν δεν απαιτείται |
- Περιορισμένη πρόσβαση στα logs.
- Καθορισμένο retention και ασφαλής διαγραφή.
- Alerts για repeated failures ή abnormal patterns.
- Συγχρονισμένος server time για σωστά timestamps.
- Redaction πριν από εμφάνιση logs στο admin.
Updates, backups και hardening
- Εφαρμογή security updates μετά από backup και σύντομο staging test.
- Αφαίρεση ανενεργών plugins, themes και παλιών administrator accounts.
- Περιορισμός write permissions στο filesystem.
- Απενεργοποίηση file editor στο WordPress admin όπου είναι κατάλληλο.
- Καθημερινά backups database και protected files.
- Off-site κρυπτογραφημένο backup και restore testing.
- Firewall και rate limiting χωρίς να μπλοκάρονται νόμιμα callbacks.
Ένα υπερβολικά αυστηρό firewall που μπλοκάρει cron, REST, OAuth callbacks ή webhooks μπορεί να προκαλέσει λειτουργική αστοχία. Οι κανόνες πρέπει να είναι συγκεκριμένοι και δοκιμασμένοι.
Αναφορά και διαχείριση περιστατικού
Identify
Καταγράψτε τι συνέβη, πότε, ποια συστήματα και ποια δεδομένα μπορεί να επηρεάζονται.
Contain
Ανακαλέστε credentials, τερματίστε sessions, περιορίστε endpoints ή θέστε το σύστημα σε ασφαλή λειτουργία.
Preserve evidence
Διατηρήστε σχετικά logs, timestamps και snapshots χωρίς να αλλοιώνετε το περιβάλλον.
Recover
Διορθώστε την αιτία, επαναφέρετε καθαρό backup όπου χρειάζεται και εκτελέστε validation.
Notify
Ενημερώστε τα υπεύθυνα πρόσωπα και ακολουθήστε τις εφαρμοστέες νομικές υποχρεώσεις.
Improve
Καταγράψτε root cause, corrective actions και μέτρα αποτροπής επανάληψης.
Η αρχική αναφορά πρέπει να περιλαμβάνει domain, ώρα, σύμπτωμα και ασφαλή τεχνικά references. Τα επιπλέον δεδομένα διαβιβάζονται μόνο μέσω συμφωνημένης ασφαλούς διαδικασίας.
Αναφορά πιθανής ευπάθειας
Αν εντοπίσετε πιθανή ευπάθεια, μην τη δημοσιεύσετε πριν δοθεί εύλογος χρόνος για επιβεβαίωση και διόρθωση.
Security Report — Nutrition Hub — [σύντομη περιγραφή]
Συμπεριλάβετε
- Επηρεαζόμενο URL ή component.
- Έκδοση Nutrition Hub και WordPress.
- Βήματα αναπαραγωγής με test data.
- Πιθανή επίπτωση.
- Screenshot ή request sample χωρίς secrets.
Έλεγχος production εγκατάστασης
Συχνές ερωτήσεις ασφάλειας
Είναι τα δεδομένα όλων των γιατρών σε μία κοινή βάση;
Κατά κανόνα, τα κλινικά δεδομένα παραμένουν στην ανεξάρτητη WordPress εγκατάσταση του γιατρού ή της κλινικής. Η κεντρική πλατφόρμα διαχειρίζεται account, license και επιλεγμένα integration services.
Είναι κρυπτογραφημένη ολόκληρη η WordPress database;
Η μεταφορά γίνεται μέσω HTTPS και τα sensitive integration credentials πρέπει να προστατεύονται ξεχωριστά. Η πλήρης disk/database encryption εξαρτάται επίσης από το hosting environment.
Μπορεί η γραμματεία να βλέπει clinical notes;
Δεν πρέπει από προεπιλογή. Ο ρόλος της γραμματείας περιορίζεται σε λειτουργικές εργασίες, όπως ραντεβού και βασική επικοινωνία.
Πώς προστατεύονται τα payment webhooks;
Με provider signature verification, idempotency και server-side validation πριν αλλάξει billing ή license status.
Τι κάνω αν υποψιάζομαι έκθεση API key;
Ανακαλέστε ή περιστρέψτε άμεσα το credential, ελέγξτε logs, περιορίστε την integration και ανοίξτε security incident χωρίς να συμπεριλάβετε το ίδιο το secret.
Εφαρμογή του security model
API & Webhooks Reference
Η επόμενη σελίδα καλύπτει authentication, request signing, idempotency, responses, retries και ασφαλή webhook processing.