ඔබේ වෙබ් යෙදුමේ පරිශීලක ගිණුම් ආරක්ෂා කිරීමේදී බොහෝ වෙලාවට Math.random() එක භාවිතා කරන්නේ නමුත් එය ආරක්ෂක අවශ්යතා සඳහා නොගැළපේ. නවතම ලිපියක් අනුව, AI‑කේත සකසන මෙවලම් සහ බොහෝ ටියුටෝරියල්ස් මේ පදනම පමණක් පෙන්වයි, ඒත් එය සැබෑ ආකාරයේ තදබල ආරක්ෂාවක් නොවේ.
කියවූ කෙනෙකු Cursor නම් AI‑කේත ජනකයක් භාවිතා කරමින් පාරිභෝගික මුරපද නැවත සැකසීමේ (password reset) පියවරක් පරීක්ෂා කළේය. එහි ටෝකන් ජනනය කරන කොඩ් පේළිය මෙසේය: Math.random().toString(36).substring(2). මෙය පරිශීලකයාගේ මුරපද නැවත සකස් කිරීමේ ලින්ක් එකට යොදා ගැනේ. එවැනි ටෝකන් එකක් හොයාගන්න හෝ අනුමාන කරන්න හැකි නම්, පරිශීලක ගිණුම පූර්ණයෙන්ම අධිකාරියට ලැබේ.
Math.random() යනු අරමුණේ UI රැඳවුම්, වර්ණ තේරීම, ලැයිස්තු මිශ්ර කිරීම වැනි අඩු‑මට්ටමේ රැඳවුම් සඳහා නිර්මාණය කළ පසු‑රැඳවුම් ජනකයකි. එහි අභ්යන්තර තත්ත්වය කිහිපයක් පළමු ප්රතිඵල වලින්ම හෝ අනුමාන කළ හැකිය. එමෙන්ම .toString(36).substring(2) මඟින් ජනනය වන අක්ෂර පරාසය තරමක් සීමිතයි, ඒ නිසා පැය කිහිපයක් පමණක් වලංගු වන ටෝකනයක් බ්රුට්‑ෆෝර්ස් කරගැනීමට ඉඩ ඇත.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික ආරම්භකයින්, විශ්වවිද්යාල සිසුන්, සහ ව්යාපාරිකයින් සියලුදෙනාම මෙම ආරක්ෂක වැරදි වලින් ආරක්ෂා විය යුතුය. බොහෝ දේශීය start‑up ගණනක් Node.js, JavaScript පදනම් කරගෙන සේවා දියත් කරයි; ඒවායේ පරිශීලක සත්යාපන, API කී, හෝ session token වැනි සංවේදී දත්ත සඳහා Math.random() භාවිතා කරනවා නම්, සයිබර් අපරාධිකයන්ට පහසු පාලනයක් සපයයි.
- සිසුන්ට
crypto.randomBytesහෝcrypto.randomUUIDවැනි ක්රම භාවිතා කරමින් ආරක්ෂිත රැඳවුම් නිර්මාණය කිරීමට අවශ්ය කුසලතාව ලබා දේ. - ව්යාපාරිකයන්ට දත්ත උල්ලංඝනයේ අවදානම අඩු කර, පාරිභෝගික විශ්වාසය තවත් බලාගත හැක.
- AI code generator භාවිතා කරන සංවර්ධකයින්ට නියමිත ආරක්ෂක නීති (CWE‑330) පිළිබඳ අවධානයක් ලබා දේ.
ආරක්ෂිත රැඳවුම් සඳහා crypto මොඩියුලය භාවිතා කිරීම හෝ Python හි secrets මොඩියුලය යොදා ගැනීම වඩාත් සුදුසු. මෙම කුඩා වෙනසක් ඔබේ යෙදුමේ ආරක්ෂාව තවත් මට්ටමකට උසස් කරයි.
අවසන් වශයෙන්, රැඳවුම් ජනනයේ “සරල” කියා හඳුන්වන ආකාරය සදහා පමණක් Math.random() තෝරාගැනීමේදී සූක්ෂ්ම අවධානයෙන් ඉවත් වන්න. ඔබේ කේතය ආරක්ෂිත කරගැනීමට අදම crypto.randomBytes හෝ crypto.randomUUID භාවිතා කරන්න.