AI කේත ලේඛකයන් (AI editors) පසුගිය කාලයේ JavaScript වල deep merge ක්රම ලියන වැඩේ බොහෝ වෙලාවට සාර්ථකයි කියලා හිතෙනවා. නමුත්, ඔවුන් විශ්වාස කරන ආකාරයෙන්, මූලාශ්ර වස්තුවේ ඇති සියලුම key‑වලටත් විශ්වාස කරන නිසා, __proto__ වැනි විශේෂ key එකක් ඇතුළත් කරලා සරලවම Object.prototype එක පිරිසිදු කරලා ඉවත් කළ හැකිය.
ඉතා සරල උදාහරණයක් ලෙස, Cursor AI එකට deep merge function එකක් ලියලා දෙන්න කියලා ඉල්ලුවා. එය 15 පේළි කේතයක්, nested object ගණනාවක් නිවැරදිව එක්කරන, සහ මගේ සියලු unit test පසුබැසීමක් නොදැක්කා. පසුගිය දින තුනකින් පසු, {"__proto__": {"isAdmin": true}} වැනි payload එකක් POST කරලා, ඒක deep merge function එකට දුන්නාම, Node process එකේ සෑම object එකකටම isAdmin:true කියලා property එක එකතු වුනා.
මෙම වර්ගයේ ආකාරයට prototype pollution (CWE‑1321) කියන සයිබර් ආපදා සිදුවෙන්නේ, recursive merge function එකක් object key ගණනාව iterate කරන විට, key validation එකක් නොකළහොත්, Object.prototype එකට ලිවීමේ පාලනයක් ලැබෙයි. ඒ නිසා, attacker එකක් එක් key එකක් (උදා: __proto__) භාවිතා කරලා, පද්ධතියේ සෑම object එකකම අයදුම් කළ හැකිය. මෙම වරද නිසා server එක restart කරන තුරු, පද්ධතිය පූර්ණයෙන්ම ආක්රමණය වෙලා ඉඳී.
ඉදිරියට මෙවැනි වැරදි නැවැත්වීමට, merge loop එකේ මුලින්ම three‑key guard එකක් එක්කන්න. __proto__, constructor, prototype යන key ගණනාවට continue කරලා, recursion එකට ඇතුළු නොවන්න. මේ සරල කොඩ් එකක් පමණයි, නමුත් ආරක්ෂාවට අති විශාල බලපෑමක් දෙනවා.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ බොහෝ startups, fintech, e‑commerce වැනි web application සමාගම් Node.js හෝ JavaScript භාවිතා කරති. මේ ආකාරයේ prototype pollution වැරදි ඇතිවීම, රහස්ය දත්ත හෝ පරිශීලක අධිකාරි පාලනය අහිමි කරවීමට ඉඩ සලසයි. ඒ නිසා:
- විකාශකයින්ට AI code generators භාවිතා කරන විට, security guard එකක් එක්කලා code ලියන්න අවශ්ය බව අවබෝධ කරගත හැකිය.
- ඉගෙනුම් මට්ටමේ සිසුන්ට, deep merge pattern එකේ hidden risk ගැන ඉගැන්වීම, පශ්චාත්‑ආරක්ෂක සිත්ගත් පද්ධති නිර්මාණයට මඟ පෙන්වයි.
- ව්යාපාරිකයින්ට, ආරක්ෂක audit එකේ prototype pollution test එකක් ඇතුළත් කරලා, අනතුරුදායක CVE (උදා: lodash CVE‑2019‑10744) වලින් ආරක්ෂා විය හැකිය.
අවසානයේ, AI‑generated කේතය භාවිතා කරන කාලයේ, security check එකක් අමතක නොකිරීම, පද්ධතියේ ආරක්ෂාව තහවුරු කරන මූලික පියවරයි. ඔබේ codebase එකේ deep merge function එකක් තිබේ නම්, ඉක්මනින් three‑key guard එක එක්කලා, prototype pollution රැකවරණය කරන්න.
මෙම වාර්තාව ඔබේ පද්ධතියේ ආරක්ෂාව තවත් වඩාත් ශක්තිමත් කරයි කියලා අපි විශ්වාස කරනවා.