Μετάβαση στο περιεχόμενο
Αρχική Τεκμηρίωση Security Guide
Nutrition Hub · Security Architecture

Security Guide

Οι βασικές αρχές ασφάλειας του Nutrition Hub για ρόλους, tenant isolation, sessions, secrets, protected files, server-to-server επικοινωνία, audit logs και incident response.

Least privilege Tenant isolation Server-side authorization Encrypted secrets Auditability
Security principles

Οι βασικές αρχές προστασίας

Η ασφάλεια δεν βασίζεται σε ένα plugin ή μία ρύθμιση. Αποτελεί συνδυασμό σωστής αρχιτεκτονικής, ασφαλούς hosting, περιορισμένων δικαιωμάτων, ενημερώσεων και υπεύθυνης καθημερινής χρήσης.

01

Least privilege

Κάθε χρήστης, integration και service λαμβάνει μόνο την πρόσβαση που απαιτείται για τη συγκεκριμένη λειτουργία.

02

Default deny

Η πρόσβαση απορρίπτεται όταν δεν υπάρχει ρητή, επαληθευμένη εξουσιοδότηση.

03

Tenant isolation

Κάθε request συνδέεται με τον σωστό γιατρό, κλινική, εγκατάσταση και patient context.

04

Defense in depth

Οι έλεγχοι εφαρμόζονται σε UI, capabilities, REST, AJAX, file downloads, callbacks και background jobs.

05

Data minimization

Συλλέγονται, μεταδίδονται και καταγράφονται μόνο τα δεδομένα που είναι αναγκαία για τον συγκεκριμένο σκοπό.

06

Auditability

Οι σημαντικές ενέργειες διαθέτουν status, timestamp και τεχνικό reference χωρίς έκθεση secrets.

Security model, όχι πιστοποίηση

Η παρούσα σελίδα περιγράφει αρχές και τεχνικά μέτρα. Δεν αποτελεί δήλωση ISO, SOC, HIPAA ή άλλης πιστοποίησης.

Shared responsibility

Ποιος είναι υπεύθυνος για τι

Περιοχή 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. Ασφάλεια της αντίστοιχης εξωτερικής υπηρεσίας.
Access control

Ρόλοι, capabilities και server-side authorization

Η απόκρυψη ενός menu δεν αποτελεί ασφάλεια. Κάθε sensitive action πρέπει να ελέγχει τον χρήστη και στο server.

Doctor

Κλινική πρόσβαση

Πρόσβαση μόνο στους ασθενείς, appointments, notes, plans και files που αντιστοιχούν στο επιτρεπτό professional context.

Secretary

Λειτουργική πρόσβαση

Ραντεβού, επικοινωνία και βασικά στοιχεία, χωρίς πρόσβαση σε clinical notes ή πλήρη κλινικό ιστορικό.

Patient

Προσωπικό portal

Πρόσβαση μόνο στα δικά του records και μόνο σε πληροφορίες που έχουν οριστεί ως ορατές.

Administrator

Τεχνική διαχείριση

Χρησιμοποιείται περιορισμένα για configuration και όχι ως κοινόχρηστος καθημερινός λογαριασμός.

Κάθε sensitive action πρέπει να ελέγχει

  • Authenticated user ή έγκυρο machine credential.
  • Capability ή ρόλο για τη συγκεκριμένη ενέργεια.
  • Tenant και installation context.
  • Ownership ή επιτρεπτή σχέση με τον ασθενή ή resource.
  • Nonce, session ή request signature όπου απαιτείται.
  • Έγκυρα και επιτρεπτά input fields.
Direct URL και API testing

Οι έλεγχοι πρέπει να δοκιμάζονται και με απευθείας REST/AJAX requests, όχι μόνο από το ορατό interface.

Tenant isolation

Διαχωρισμός γιατρών, κλινικών και εγκαταστάσεων

Το Nutrition Hub χρησιμοποιεί ανεξάρτητο doctor-site μοντέλο και tenant-aware επικοινωνία με την κεντρική πλατφόρμα. Κάθε request πρέπει να δένεται με τη σωστή εγκατάσταση.

1

Installation identity

Κάθε WordPress site έχει μοναδικό installation ή license context.

2

Signed request

Τα server-to-server requests περιλαμβάνουν tenant reference, timestamp και υπογραφή.

3

Central validation

Η κεντρική πλατφόρμα επαληθεύει άδεια, domain, plan και επιτρεπτή λειτουργία.

4

Resource scoping

Τα αποτελέσματα περιορίζονται στο συγκεκριμένο tenant, doctor ή patient context.

Δεν εμπιστευόμαστε tenant ID από το frontend.

Το tenant context επαληθεύεται από session, license ή signed server-side mapping και όχι μόνο από client-supplied field.

Authentication and sessions

Σύνδεση, 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 λύση.

Secrets and encryption

API keys, OAuth tokens και license secrets

At rest

Ασφαλής αποθήκευση

Sensitive credentials αποθηκεύονται κρυπτογραφημένα ή σε προστατευμένη server-side configuration.

In transit

TLS / HTTPS

Όλες οι production συνδέσεις και callbacks χρησιμοποιούν έγκυρο HTTPS ή ασφαλές WebSocket.

Frontend

Χωρίς server secrets

API secrets, OAuth client secrets και webhook secrets δεν ενσωματώνονται σε HTML ή JavaScript.

Rotation

Ανάκληση και αλλαγή

Τα credentials μπορούν να ανακληθούν ή να αντικατασταθούν σε περίπτωση migration ή υποψίας έκθεσης.

Δεν αποστέλλουμε σε tickets ή screenshots

  • License secret
  • OpenAI API key
  • Payment provider secret keys
  • Webhook signing secret
  • Google refresh token
  • SMTP password
  • WordPress administrator password
Key separation

Production και staging πρέπει να χρησιμοποιούν διαφορετικά credentials όπου το επιτρέπει η integration.

Protected files

Αρχεία ασθενών και ασφαλή downloads

Τα ευαίσθητα αρχεία δεν πρέπει να είναι προσβάσιμα μέσω δημόσιου, προβλέψιμου WordPress media URL.

1

Protected storage

Το αρχείο αποθηκεύεται σε μη δημόσιο ή ελεγχόμενο storage location.

2

Metadata validation

Καταγράφονται owner, patient, tenant, MIME type, size και visibility.

3

Download authorization

Κάθε download ελέγχει session, role, tenant και patient relation.

4

Controlled response

Το αρχείο μεταδίδεται μόνο μετά από επιτυχή authorization, με ασφαλή response headers.

  • Allowlist επιτρεπόμενων τύπων αρχείων.
  • Όρια μεγέθους upload.
  • Έλεγχος πραγματικού MIME type.
  • Αποφυγή executable uploads.
  • Καθαρισμός orphaned files.
  • Backup και retention policy.
API and webhook security

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.
Ενδεικτική signed-request λογική signature = HMAC_SHA256( timestamp + "." + request_body, installation_secret )

Η ακριβής μορφή signing, header names και tolerance window τεκμηριώνεται ξεχωριστά στο API & Webhooks Reference.

Integration-specific controls

Έλεγχοι ανά integration

Google Calendar

OAuth και revocation

Signed state, ελάχιστα scopes, protected tokens και δυνατότητα disconnect/revoke.

Payments

Signed webhooks

Server-side secrets, signature validation και idempotency πριν από αλλαγή billing status.

OpenAI

Central proxy

Το API key παραμένει κεντρικά και εφαρμόζονται feature, quota και task allowlists.

Soketi

Private channels

Server-side channel authorization και tenant-aware event routing.

Email

Authenticated sender

SPF, DKIM, DMARC, protected credentials και privacy-safe delivery logs.

Private updates

Short-lived downloads

License validation και προσωρινό download token αντί μόνιμου δημόσιου URL.

Logging and monitoring

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.
Operational security

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.
Security και availability

Ένα υπερβολικά αυστηρό firewall που μπλοκάρει cron, REST, OAuth callbacks ή webhooks μπορεί να προκαλέσει λειτουργική αστοχία. Οι κανόνες πρέπει να είναι συγκεκριμένοι και δοκιμασμένοι.

Incident response

Αναφορά και διαχείριση περιστατικού

1

Identify

Καταγράψτε τι συνέβη, πότε, ποια συστήματα και ποια δεδομένα μπορεί να επηρεάζονται.

2

Contain

Ανακαλέστε credentials, τερματίστε sessions, περιορίστε endpoints ή θέστε το σύστημα σε ασφαλή λειτουργία.

3

Preserve evidence

Διατηρήστε σχετικά logs, timestamps και snapshots χωρίς να αλλοιώνετε το περιβάλλον.

4

Recover

Διορθώστε την αιτία, επαναφέρετε καθαρό backup όπου χρειάζεται και εκτελέστε validation.

5

Notify

Ενημερώστε τα υπεύθυνα πρόσωπα και ακολουθήστε τις εφαρμοστέες νομικές υποχρεώσεις.

6

Improve

Καταγράψτε root cause, corrective actions και μέτρα αποτροπής επανάληψης.

Μην στέλνετε ευαίσθητα στοιχεία σε απλό support email.

Η αρχική αναφορά πρέπει να περιλαμβάνει domain, ώρα, σύμπτωμα και ασφαλή τεχνικά references. Τα επιπλέον δεδομένα διαβιβάζονται μόνο μέσω συμφωνημένης ασφαλούς διαδικασίας.

Responsible disclosure

Αναφορά πιθανής ευπάθειας

Αν εντοπίσετε πιθανή ευπάθεια, μην τη δημοσιεύσετε πριν δοθεί εύλογος χρόνος για επιβεβαίωση και διόρθωση.

Προτεινόμενο θέμα Security Report — Nutrition Hub — [σύντομη περιγραφή] Συμπεριλάβετε
  • Επηρεαζόμενο URL ή component.
  • Έκδοση Nutrition Hub και WordPress.
  • Βήματα αναπαραγωγής με test data.
  • Πιθανή επίπτωση.
  • Screenshot ή request sample χωρίς secrets.
info@webion.gr
Security checklist

Έλεγχος production εγκατάστασης

FAQ

Συχνές ερωτήσεις ασφάλειας

Είναι τα δεδομένα όλων των γιατρών σε μία κοινή βάση;

Κατά κανόνα, τα κλινικά δεδομένα παραμένουν στην ανεξάρτητη 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.

Next documentation page

API & Webhooks Reference

Η επόμενη σελίδα καλύπτει authentication, request signing, idempotency, responses, retries και ασφαλή webhook processing.

Επόμενος οδηγός