PAS7 Studio
NestJS + JSON sigurnost: dupli ključevi, strogi parsing i validacija requesta
Tehnologija06. velj 2026.·5 min čitanja·Ažurirano 06. velj 2026.

Dupli JSON ključevi u NestJS-u: zašto je to opasno, što drugi propuštaju i kako to rješava @pas7/nestjs-strict-json

Većina Node/Nest tehnoloških paketa tiho prihvaća duple ključeve u JSON-u (last-one-wins). To je stvaran sigurnosni i funkcionalni rizik. Ovdje su model prijetnji, usporedba alata i razlog zašto je PAS7 Studio izradio @pas7/nestjs-strict-json.

Što ćeš dobiti

Što ćeš dobiti iz ovog članka

Praktični dubinski pregled za backend inženjere: model prijetnji, kako se dupli ključevi ponašaju u praksi, što popularni alati rade (i ne rade) te pristup koji smo implementirali u @pas7/nestjs-strict-json.

Zašto dupli ključevi uopće postoje i zašto standardi upozoravaju na njih. [1]

Zašto je “last-one-wins” parsing rizik za ispravnost i sigurnost. [2][3]

Pregled konkurencije: što rješavaju biblioteke poput secure-json-parse (a što ne). [4]

Kako se @pas7/nestjs-strict-json uklapa u NestJS bez nepotrebne komplikacije.

Preporučena strategija uvođenja: strogi način rada bez rušenja produkcijskih klijenata preko noći.

Zašto su dupli

Zašto su dupli ključevi stvaran problem (nije cjepidlačenje)

Nazivi članova JSON objekta *trebali bi* biti jedinstveni kako bi ponašanje bilo predvidljivo. JSON standard eksplicitno upozorava: kad imena nisu jedinstvena, implementacije mogu imati nepredvidivo ponašanje, a neke zadržavaju zadnju vrijednost. To nije hipotetski — događa se u stvarnim parserima i stvarnim API-jima. [1]

Problem je jednostavan: različiti slojevi mogu različito interpretirati isti payload. Gateway može vidjeti prvu vrijednost, aplikacija zadnju, logiranje nešto treće, a potpis/verifikacija se može prevariti ako se serializacija/normalizacija razlikuje po komponentama. Ova klasa problema dobro je dokumentirana u sigurnosnim istraživanjima o JSON interoperabilnosti. [3]

Model prijetnji

Threat model: gdje dupli ključevi štete

Dupli ključevi su klasičan “izgleda bezazleno” trik. Evo tipičnih failure mode-ova koje vidimo kod timova:

Zbunjenost u autorizaciji: proxy ili middleware provjeri jednu vrijednost, a aplikacija koristi drugu (role / scope / isAdmin).

Zaobilaženje validacije: shema validira jednu reprezentaciju, business logika konzumira drugu.

Nesklad audita/logova: incident response je teži kad logovi ne odgovaraju efektivnom payloadu.

Nedosljednosti WAF/cache/signature: sigurnosni alati normaliziraju drugačije od runtime parsera (interoperability bugovi). [3]

Konkurencija zašto ne

Konkurencija i zašto ne pokriva sve

Postoje odlične biblioteke za hardening JSON parsinga, ali mnoge ciljaju drugačiju površinu napada od duplih ključeva.

secure-json-parse (Fastify ekosustav)

Široko korišten drop-in parser fokusiran na prototype poisoning rizike poput __proto__ i constructor.prototype. Odličan je za tu kategoriju, ali to nije isto što i striktna detekcija duplih ključeva po defaultu. To je *sigurnost prototipa*, ne *semantička jedinstvenost ključeva*. [4]

Tipični NestJS stackovi (Express/Fastify default)

Većina setupa se oslanja na standardni JSON parsing i zatim radi validaciju (DTO/class-validator/zod). Ali ako se duplikati kolabiraju tijekom parsinga, validatori vide samo finalni shape — i trik je često nevidljiv.

Custom middleware / ručne provjere

Timovi ponekad zakrpaju ovo ad-hoc middlewareom. To često vodi do nekonzistentnog ponašanja po rutama, krhkih integracija s adapterima (Express vs Fastify) i manjka test pokrivenosti. Htjeli smo čist, reusabilan, Nest-native pristup.

@pas7/nestjs-strict-json

Naš fokus: detektirati i odbiti JSON s duplim ključevima rano i konzistentno, s predvidljivim ponašanjem kroz cijelu NestJS aplikaciju. Cilj kao kod “strict input contracts”: fail fast, fail loudly i uredna observability.

Što standard zapravo

Što standard zapravo kaže

RFC 8259 upozorava da bi nazivi članova trebali biti jedinstveni, a kad nisu, ponašanje nije interoperabilno. Drugim riječima: “prođe parsing” nije dovoljno — bitna je *predvidljivost kroz cijeli toolchain*. [1]

Sigurnosna istraživanja idu dalje: razlike u parsingu/normalizaciji između komponenti mogu stvoriti stvarne ranjivosti (JSON interoperability issues). Dupli ključevi su čest sastojak takvih nesklada. [3]

pas7/nestjs-strict-json pomaže praksi

Kako @pas7/nestjs-strict-json pomaže u praksi

Namjera je jednostavna: osigurati da request JSON bude *jednoznačna mapa* (bez duplih ključeva) prije nego dođe do kontrolera, DTO validacije ili business logike.

Odbaci duple ključeve rano (prije validacije/business logike).

Konzistentno ponašanje kroz okruženja (local, staging, production).

Jasni, debuggable errori umjesto tihih overwriteova.

Integracija prilagođena NestJS-u (osjeća se kao dio frameworka, ne kao nasumična skripta).

Strategija uvođenja ne

Strategija uvođenja (ne razbij produkciju slučajno)

Ako već imaš klijente u stvarnom svijetu, stroge provjere inputa uvedi pažljivo. Siguran put:

Kreni s načinom samo za izvještavanje (logiraj pojave duplih ključeva) kratko vrijeme.

Ispravi/kontaktiraj top klijente; duplikati su često greške serializer-a.

Postupno uključi strogo odbijanje po grupama ruta (auth/admin prvo).

Postavi to kao platformsku politiku: “dupli ključevi su nevalidan input”. Napiši to u API contract.

O PAS7 Studio

O PAS7 Studio (zašto smo to open-sourceali)

Gradimo performance-first web proizvode i backend sustave i stalno nailazimo na isti problem: timovi troše vrijeme na “nemoguća stanja” uzrokovana dvosmislenim inputom. Strict JSON je mala zaštita koja sprječava cijelu klasu problema.

Zato smo open-sourceali @pas7/nestjs-strict-json: da strictness bude jednostavan, konzistentan i testabilan u NestJS projektima.

FAQ

ČPP

Je li ponašanje s duplim ključevima stvarno nedefinirano?

JSON standard upozorava da nejedinstvena imena vode do neinteroperabilnog ponašanja; mnoge implementacije to prihvaćaju i zadržavaju zadnju vrijednost. Upravo taj mismatch je rizik. [1][2]

Rješava li secure-json-parse duple ključeve?

secure-json-parse primarno cilja prototype poisoning (__proto__/constructor.prototype). To je odličan sloj za tu kategoriju, ali nije isto što i forsiranje jedinstvenih ključeva u JSON objektima. [4]

Ne može li validacija (DTO/Zod) to uhvatiti?

Validacija se obično radi *nakon* parsinga, pa često vidi samo finalni shape objekta nakon kolapsa duplikata. Strict JSON pokušava uhvatiti dvosmislenost ranije.

Kako uvesti strict JSON bez rušenja klijenata?

Počni s načinom samo za izvještavanje za payloadove s duplim ključevima, popravi top klijente, zatim postupno uključi strogo odbijanje po grupama ruta. Tretiraj to kao pravilo API ugovora.

Izvori reference

Izvori i reference

Ključni standardi i sigurnosne reference korištene u ovom članku.

Želiš sigurnije NestJS API-je? Kreni od strogih input contracta

Ako ti je backend “secure by DTO”, strict parsing je često prvi korak koji nedostaje: validiraj tek nakon što je payload jednoznačan.

Povezani članci

AI SEO / GEO u 2026: vaši sljedeći kupci nisu ljudi — nego agenti
growth

AI SEO / GEO u 2026: vaši sljedeći kupci nisu ljudi — nego agenti

Pretraživanje se pomiče s klikova na odgovore. Botovi i AI agenti pretražuju, citiraju, preporučuju i sve češće kupuju. Saznajte što znači AI SEO / GEO, zašto klasični SEO više nije dovoljan i kako PAS7 Studio pomaže brendovima pobijediti u agentičkom webu.

Najmoćniji Apple čip? M5 Pro i M5 Max ruše rekorde
blogs

Najmoćniji Apple čip? M5 Pro i M5 Max ruše rekorde

Analiza Apple M5 Pro i M5 Max čipova u ožujku 2026. Objašnjavamo zašto se ovi čipovi mogu smatrati najjačim profesionalnim laptop SoC-ovima koje je Apple dosad napravio, kako izgledaju protiv M4 Pro, M4 Max, M1 Pro, M1 Max i što pokazuju u usporedbi s aktualnim Intel i AMD konkurentima.

Automatsko označavanje i pretraga spremljenih linkova
telegram-media-saver

Automatsko označavanje i pretraga spremljenih linkova

Integracija s GDrive/S3/Notion za automatsko označavanje i brzu pretragu putem search API-ja

Razvoj botova i usluge automatizacije
services

Razvoj botova i usluge automatizacije

Profesionalni razvoj Telegram botova i automatizacija poslovnih procesa: chatbotovi, AI asistenti, CRM integracije, automatizacija radnih tijekova.

Web razvoj za vaše poslovanje

Profesionalni razvoj modernih web aplikacija i web stranica

Usluge web razvoja

Profesionalne usluge web razvoja za poslovanje: od landing stranica do složenih web platformi s responzivnim dizajnom i SEO optimizacijom.

Istraživanje kibernetičke sigurnosti i procjena ranjivosti

Autorizirana sigurnosna provjera proizvoda, API-ja, izvornog koda i infrastrukture. Pronalazimo sigurnosne probleme, objašnjavamo rizik i opisujemo kako ih ispraviti.

Profesionalni razvoj za vaše poslovanje

Kreiramo moderne web rješenja i botove za poduzeća. Saznajte kako vam možemo pomoći u postizanju ciljeva.