Ale dirèkteman nan kontni an

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/node ak @jodaprint/protocol aplike 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.1 ak ::1, sou wss://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).