GH GambleHub

Πολιτικές ασφάλειας και CSP

1) Γιατί χρειαζόμαστε πολιτικές ασφάλειας

Το σύγχρονο μέτωπο και το API εξαρτώνται από πολλές πηγές (CDN, analytics, PSP, 3DS, chats). Χωρίς σκληρές πολιτικές, οι κίνδυνοι από XSS, clickjacking, διαρροές δεδομένων και πειρατεία συνεδρίας αυξάνονται. Οι πολιτικές ασφαλείας περιορίζουν αυτό που επιτρέπεται εξ ορισμού μετακινώντας τον φυλλομετρητή στο μοντέλο επιτρεπόμενης λίστας.

2) Βασικοί πυλώνες

Το CSP (Content Security Policy) είναι ένα συγκεντρωτικό «μενού» επιτρεπόμενων πηγών και συμπεριφορών JS/CSS/μέσων ενημέρωσης.
Τύποι εμπίστευσης - Προστασία σε επίπεδο τύπου από DOM-XSS.
SRI (Subresource Integrity) - έλεγχος της ακεραιότητας των σεναρίων/στυλ.
COOP/COEP/CORP - άκαμπτη απομόνωση των πλαισίων και των πόρων μεταξύ των πηγών.
Το Fetch Metadata ('Sec-Fetch-') είναι μια λύση διακομιστή για το φιλτράρισμα cross-site αιτήσεων.
CORS - διατομεακή πολιτική πρόσβασης API.
Κλασικοί τίτλοι: HSTS, 'X-Frame-Option /' frame-ancestors', 'Referrer-Policy', 'Permissions-Policy', SamiSite-cookies.

3) CSP: Βάση και αρχές

3. 1 Οδηγίες (κλειδί)

«default-src» - εξ ορισμού για άλλες οδηγίες.
'script-src' - πηγές JS, nonce/hash, 'strict-dynamic', 'report-sample'.
«style-src» - πηγές CSS, ελαχιστοποίηση 'unsafe-inline'.
'img-src', 'font-src', 'media-src', 'object-src' (обычно 'no').
'connect-src' - αιτήσεις δικτύου (XHR/fetch/WebSocket).
«frame-src »/« child-src» - πλαίσια τρίτων (PSP, 3DS).
«frame-πρόγονοι» - που μπορούν να ενσωματώσουν την ιστοσελίδα μας (anti-clickjacking).
«base-uri» - απαγόρευση της υποκατάστασης του «<base>».
«Ομοίωση» - όπου επιτρέπεται η υποβολή εντύπων.
«αναβάθμιση-επισφαλή αιτήματα», «μπλοκ-όλα-μεικτό-περιεχόμενο» - καταπολέμηση του μείγματος HTTP/HTTPS.
«report-uri »/« report-to» - πού να στείλετε παραβιάσεις.

3. 2 Nonce и hash

Nonce προσέγγιση: δημιουργήστε ένα crypto-random 'nonce' για κάθε απάντηση HTTP, προσθέστε '<script nonce =...' «> 'σε inline scripts και' script-src 'nonce-»..
Προσέγγιση Hash: σταθερό hash του περιεχομένου inline. Κατάλληλο για στατική HTML, άβολο για δυναμική.
'strict-dynamic': εμπιστοσύνη μόνο σενάρια που φορτώνονται από ένα «αξιόπιστο» σενάριο (με nonce/hash). Αφαιρεί την ανάγκη για λίστα τομέων-στόχων κατά τη διάρκεια της δυναμικής εκκίνησης, αλλά απαιτεί σύγχρονους περιηγητές.

3. Απαγόρευση «μη ασφαλούς»

Αποφύγετε το «μη ασφαλές», το «μη ασφαλές». Αν το πλαίσιο απαιτεί eval (για παράδειγμα, source-map in dev), συμπεριλαμβάνεται μόνο στο dev.
Για στυλ - χρήση 'nonce' ή 'hash', αν είναι δυνατόν χωρίς inlines.

3. 4 Παράδειγμα αυστηρού CSP (σημείο μάχης)


Content-Security-Policy:
default-src 'none';
base-uri 'self';
object-src 'none';
script-src 'self' 'nonce-{RANDOM}' 'strict-dynamic' https://www. googletagmanager. com;
style-src 'self' 'nonce-{RANDOM}';
img-src 'self' data: https://images. example-cdn. com;
font-src 'self' https://fonts. gstatic. com;
connect-src 'self' https://api. example. com wss://ws. example. com;
frame-src https://3ds. psp. com https://pay. psp. com;
frame-ancestors 'none';
form-action 'self' https://pay. psp. com;
upgrade-insecure-requests;
report-to csp-endpoint; report-sample
💡 Εκτελείται προσωρινά ως 'Content-Security-Policy-Report-Only', συλλέγει αναφορές, αποσφαλματώνει και στη συνέχεια επιβάλλει.

4) Τύποι εμπίστευσης (DOM-XSS)

Ενεργοποίηση της οδηγίας: "Content-Security-Policy: request-trust-type-for 'script', προεπιλογή εφαρμογής εμπίστευσης τύπων '.
Δημιουργία ενιαίας πολιτικής στον κώδικα ('παράθυρο. Τύποι trustedTypes. CreedPolicy ('app', {creedHTML () {...}}).
Απαγόρευση ανασφαλών εκχωρήσεων ("στοιχείο. innHTML =... ') без τύπους εμπίστευσης.
Ολοκλήρωση πλαισίου (αντίδραση/γωνιακή/Vue): χρήση API ασφαλούς απόδοσης, αποφυγή επικίνδυνων κινδύνων "SetInnerHTML.

5) SRI (Ακεραιότητα CDN)

Για εξωτερικά' <script> '/' <link>', χρησιμοποιήστε 'ακεραιότητα =" sha256-... «crossorigin =» anonymous «».
Συμπληρώματα SRI, που δεν αντικαθιστούν, CSP. Κατά την αναβάθμιση μιας έκδοσης CDN, ενημερώστε το hash.

6) Κλίκτζακ και πλαίσια

Ο σύγχρονος τρόπος είναι οι «πρόγονοι-πλαίσιο» (αντικαθιστά τις ξεπερασμένες «επιλογές-πλαίσιο-πλαίσιο»).

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.