Repository navigation
Security and Privacy
Ελληνικά · English
Η Karta διαχειρίζεται νόμιμα αρχεία χρόνου εργασίας και προσωπικά δεδομένα του προσωπικού (ονόματα, ΑΦΜ, ώρες εργασίας). Δείτε πώς προστατεύονται, και τι είναι δική σας ευθύνη.
| Τμήμα | Προστατεύεται με |
|---|---|
Σελίδα διαχείρισης (/admin, /admin/api/…) |
Cloudflare Access. Σε κάθε αίτημα η Karta ελέγχει το υπογεγραμμένο token (υπογραφή RS256, audience, issuer, λήξη) και ότι το email υπάρχει στο ADMIN_EMAILS. Αν κάτι λείπει ή είναι λάθος, η πρόσβαση απορρίπτεται. |
| Χτυπήματα στην οθόνη του καταστήματος | Χτυπούν κάρτα μόνο γραμμένες συσκευές. Η εγγραφή χρειάζεται κωδικό μίας χρήσης από τον διαχειριστή (ισχύει 10 λεπτά), και μετά η συσκευή κρατά ένα cookie HttpOnly, Secure, SameSite=Strict. Μπορείτε να ανακαλέσετε οποιαδήποτε συσκευή. |
| Κάθε χτύπημα | Το PIN του εργαζόμενου (6 ψηφία, τα πολύ εύκολα δεν γίνονται δεκτά, κλείδωμα 5 λεπτών μετά από 5 λάθη) ή η κάρτα QR του. |
| Σύνδεσμοι κάρτας για το κινητό | Τυχαίο token, ισχύει 24 ώρες και ανοίγει το πολύ 10 φορές· ακυρώνεται μόλις εκδοθεί νέα κάρτα. |
Τα αιτήματα που αλλάζουν δεδομένα πρέπει να έρχονται από το δικό σας PUBLIC_ORIGIN.
Αιτήματα από άλλα sites απορρίπτονται.
-
PIN: κρυπτογραφική σύνοψη (hash) με Argon2, οπότε δεν μπορούν να διαβαστούν
πίσω. Αν έχει οριστεί
PIN_KEY, κρατιέται και ένα αντίγραφο κρυπτογραφημένο με AES‑GCM ώστε να μπορεί να το δει ο διαχειριστής· το κλειδί βρίσκεται μόνο στο.env, ποτέ στη βάση. -
Κωδικοί καρτών QR, tokens συσκευών, κωδικοί εγγραφής και tokens συνδέσμων:
αποθηκεύονται μόνο ως σύνοψη SHA‑256. Οι κωδικοί QR κρυπτογραφούνται επιπλέον με το
PIN_KEY, ώστε η κάρτα να μπορεί να εμφανιστεί ξανά. -
Κωδικός ΕΡΓΑΝΗ: στο
.env, ή, αν τον βάλετε από τη σελίδα διαχείρισης, στη βάση κρυπτογραφημένος με AES‑GCM και τοPIN_KEY(όπως και το token του ntfy). Δεν επιστρέφεται ποτέ στη σελίδα. -
Αντίγραφα στο cloud: κρυπτογραφούνται στο μηχάνημά σας πριν ανέβουν (restic, AES-256)·
ο πάροχος του cloud δεν μπορεί να τα διαβάσει. Ο κωδικός κρυπτογράφησης και η πρόσβαση
στο cloud φυλάσσονται στο μηχάνημα (
/data/cloud-password,/data/rclone.conf, μόνο για την Karta)· στο Google Drive η Karta βλέπει μόνο τα αρχεία που φτιάχνει η ίδια.
- Από τα στοιχεία εργαζομένων του ΕΡΓΑΝΗ (που περιλαμβάνουν έγγραφα ταυτότητας, αμοιβές και οικογενειακά στοιχεία), η Karta κρατά μόνο ΑΦΜ, ονοματεπώνυμο και δηλωμένο ωράριο. Τα υπόλοιπα απορρίπτονται αμέσως και δεν καταγράφονται ποτέ.
- Το αρχείο ενεργειών (audit log) δεν αποθηκεύει ποτέ ολόκληρο ΑΦΜ (μόνο τα 3 τελευταία ψηφία).
- Η οθόνη του καταστήματος και η κάρτα στο κινητό δείχνουν μόνο το όνομα εμφάνισης.
- Αυστηρό Content‑Security‑Policy: χωρίς inline scripts ή styles και χωρίς περιεχόμενο τρίτων. Οι σελίδες δεν μπορούν να ενσωματωθούν σε άλλα sites.
- Μόνο οι σελίδες της ίδιας της Karta μπορούν να χρησιμοποιήσουν την κάμερα. Μικρόφωνο, τοποθεσία, πληρωμές και USB είναι απενεργοποιημένα.
-
Cache-Control: no-storeσε κάθε απάντηση. - Κρυμμένη από τις μηχανές αναζήτησης: το
/robots.txtαπαγορεύει τα πάντα, και κάθε απάντηση έχειX-Robots-Tag: noindex, nofollow, …. - Το image του Docker τρέχει ως χρήστης χωρίς δικαιώματα διαχειριστή, χωρίς banner server και χωρίς access log.
Το image της Karta χτίζεται μόνο από το GitHub Actions του έργου, με υπογεγραμμένη
προέλευση (build provenance) και SBOM. Έλεγχος:
gh attestation verify oci://ghcr.io/osergios/karta:<έκδοση> --owner osergios.
Οι ενέργειες του διαχειριστή (νέο PIN, έκδοση QR, αλλαγές ωραρίου, άδειες, αποχωρήσεις που καταχωρίστηκαν με το χέρι, εγγραφή συσκευών, διαγραφές…) γράφονται σε πίνακα ελέγχου με το ποιος τις έκανε και πότε.
- Λειτουργήστε την Karta μόνο μέσω HTTPS, και κρατήστε το
/adminπίσω από το Cloudflare Access. - Κρατήστε το
.envιδιωτικό και με αντίγραφο (ιδίως τοPIN_KEY)· μην το ανεβάσετε ποτέ στο GitHub. - Κρατάτε τακτικά αντίγραφα της βάσης, και εκτός μηχανήματος (δείτε Αντίγραφα ασφαλείας). Τα χτυπήματα φυλάσσονται για τουλάχιστον 5 χρόνια.
- Τα πραγματικά χτυπήματα είναι νόμιμα αρχεία χρόνου εργασίας. Η Karta δεν σβήνει εργαζόμενο που έχει πραγματικά χτυπήματα· απενεργοποιήστε τον.
- Είστε υπεύθυνοι για τις δηλώσεις που γίνονται στο ΕΡΓΑΝΗ από την εγκατάστασή σας.
Δοκιμάστε πρώτα με
dry_runκαιtrial(δείτε Έναρξη κανονικής λειτουργίας).
Μην ανοίξετε δημόσιο issue. Χρησιμοποιήστε την ιδιωτική αναφορά ευπάθειας του GitHub· δείτε την πολιτική ασφαλείας.
Εγκατάσταση
- Εύκολη εγκατάσταση
- Εγκατάσταση
- Ρυθμίσεις server
- Δικός σας reverse proxy
- Έναρξη λειτουργίας
- Αντίγραφα ασφαλείας
- Ανάκτηση μετά από καταστροφή
Οθόνη καταστήματος
Σελίδα διαχείρισης
Πώς λειτουργεί
Home · Easy installation · Installation · Configuration · Reverse proxy · Going live · Backups · Disaster recovery · Shop screen · QR cards · Today · Schedules · Reports · Settings · Ergani · Alerts · Security · FAQ · Disclaimer