Sekirite ak siyati
Yon enprimant sou kontwa yon boutik dwe enprime sèlman sa pwòp lojisyèl boutik la voye. JodaPrint fè respekte sa a plizyè nivo.
Siyati demann yo (pa defo)
Chak òganizasyon kreye youn oswa plizyè kle siyati Ed25519 nan tablo de bò a. Kle prive a parèt yon sèl fwa epi li rete sou backend ou; kle piblik la ale jwenn ajan ou yo ansanm ak konfigirasyon yo.
SDK navigatè a pa janm kenbe yon kle prive. Pou chak demann, li rele signer ou a, ki mande backend ou siyen (gade Premye enpresyon depi navigatè a). Apre sa, ajan an verifye:
-
siyati a, sou chèn sa a:
v1{method}{orgId}{ts}{nonce}{sha256_hex(canonical_json(params))}JSON kanonik la se RFC 8785 (JCS): kle yo nan lòd, san espas.
@jodaprint/nodeak@jodaprint/protocolaplike l. -
lè a (timestamp): yon siyati ki gen plis pase 300 segonn refize (
SIGNATURE_EXPIRED); -
nonce la: yon nonce ki te parèt nan dènye 10 minit yo refize (
NONCE_REUSED).
Se pwen siyati ou a ki deside kiyès ki ka enprime: signRequestHandler egzije yon callback authorize, epi li ka limite metòd li siyen yo.
Pou chanje yon kle, kreye yon nouvo, mete l sou backend ou, epi revoke ansyen an.
Orijin ki otorize
Ajan an refize koneksyon WebSocket ki soti nan paj ki gen yon orijin ki pa nan lis òganizasyon an (ORIGIN_NOT_ALLOWED). Lè mòd devlopè limen, http://localhost:* otorize tou; fèmen l nan pwodiksyon.
Mòd san siyati (opsyonèl)
Pou ti biznis ki pa gen backend, yon òganizasyon ka limen mòd san siyati. Lè yon orijin ki otorize voye yon demann ki pa siyen, ikòn bò lè a mande moun ki devan òdinatè a: Pèmèt, Bloke oswa Toujou pèmèt. Chwa a anrejistre pou chak sit. Li fèmen pa defo.
Koneksyon lokal
- Ajan an koute sèlman sou
127.0.0.1ak::1, souwss://localhost:8182(apre sa 8283, 8384, 8485). - Pandan enstalasyon an, ajan an kreye yon otorite sètifikasyon pou machin sa a sèlman, limite a non
localhost, epi li fè l konfyans. Kle prive CA a pa janm kite machin lan; okenn sètifika oswa kle pa pataje ant kliyan yo.
Aparèy yo ak cloud la
- Pandan aktivasyon an, chak ajan kreye yon kle aparèy Ed25519; li pwouve idantite li nan chak koneksyon lè li siyen yon defi cloud la voye.
- Se toujou ajan an ki louvri koneksyon an (soti deyò). Cloud la pa janm konekte antre nan rezo ou.
- Ajan an enprime sèlman: pa gen shell a distans, pa li fichye deyò pwòp dosye li yo, pa lanse okenn pwogram eksepte asistan PDF ki vini avè l la.
- Mizajou yo siyen: ajan an verifye chak vèsyon ak kle piblikasyon JodaPrint ki anndan l, epi li retounen sou ansyen vèsyon an si yon nouvo vèsyon pa demare.
Cloud
- Kle API (
jp_live_…,jp_test_…) anrejistre kòm hash SHA-256; se premye karaktè yo sèlman ki kenbe pou rekonèt yo. Bay chak kle sèlman otorizasyon li bezwen yo. - Izolasyon ant òganizasyon: chak kle API, aparèy, enprimant ak travay fè pati yon sèl òganizasyon, epi chak rechèch filtre pa òganizasyon sa a.
- Kontni travay yo chifre lè yo anrejistre (AES-256-GCM) epi yo efase apre peryòd konsèvasyon òganizasyon an (pa defo 7 jou; 0, 1, 7, 30 oswa 90). Metadone travay yo rete pou istorik la.
- Limit vitès: pa defo 20 travay pa segonn pou chak aparèy ak 100 demann pa segonn pou chak kle API.
- Webhook yo siyen ak HMAC-SHA256: gade Webhook.
Modèl menas ak rapò
Modèl menas konplè a (yon tablo STRIDE pou chak eleman, ak tès ki kouvri chak menas) se docs/security.md nan depo JodaPrint lan. Rapòte vilnerabilite an prive bay [email protected] (gade SECURITY.md).