ගෙවීම් webhook එකක් මැද පියවරක් (intermediary) හරහා ගමන් කරලා අවසානයේ HMAC පරීක්ෂාව සාර්ථකව පසු වීම, එම මාර්ගය සම්පූර්ණයෙන්ම අකාරාත්මක නොවූ බවට දැක්වෙන ප්රායෝගික සාක්ෂියකි.
කීර්තිමත් සිදුවීම – නිෂ්පාදන පද්ධතියක ගෙවීම් සේවාදායකයා (payment provider) වෙතින් webhook එකක් මෙලෙස ගමන් කළා: Payment provider → Adal Server → Adal CLI → අවසන් webhook handler. Adal Server ඉල්ලීම ග්රහණය කර, CLI හරහා පෞද්ගලික පරිසරයට එවලා, අවසන් යෙදුම HMAC පරීක්ෂා කළා. එම පරීක්ෂාව සාර්ථක වීමෙන්, මධ්යස්ථ සේවකයෙකු විසින් payload එක වෙනස් නොකළ බව තහවුරු වුණා.
ඇයි මේ වැදගත්ද? බොහෝ ගෙවීම් සේවාදායකයන් HMAC ගණනය කිරීමේදී මුල් raw body bytes භාවිතා කරනවා. මධ්යස්ථ සේවකයෙකු JSON පාර්ස් කර, නැවත serialize (උදා: ඉන්ඩෙන්ට්, ඉඩ, අංක ආකාර) කළහොත් byte අනුක්රමය වෙනස් වේ, එවිට HMAC වැරදි වේ. එමෙන්ම timestamp, header, character encoding, line endings වැනි ද්රව්යත් HMAC ගණනයට ඇතුළත් විය හැක. ඒ නිසා payload එක “කොස්මතික” ලෙස සුරැකුම අත්යවශ්යයි.
Adad ලේයරය (Adal) මෙහිදී HMAC පරීක්ෂා නොකළ නමුත්, එය අවසන් යෙදුමට පාරිභෝගික තොරතුරු (request) පූර්ණයෙන්ම සුරැකි බවට උපකාරී වේ. මෙයින් ලැබෙන ප්රතිලාභ:
- පොදු public webhook URL එකක් ලබාදීම.
- ඉල්ලීම් විස්තර සහ ඉතිහාසය දැකගැනීම.
- අසාර්ථක වීමේදී නැවත උත්සාහ කිරීමේ හැකියාව.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සංවර්ධනයේදී, මෙම පරීක්ෂාව විශාල වැදගත්කමක් ගනී. ඉගෙනුම් වශයෙන්, සිසුන්ට HTTP request lifecycle, HMAC, සහ webhook මාරු කිරීමේ සංකීර්ණතා ගැන ප්රායෝගික උදාහරණයක් ලැබේ. ඩිවෙලපර්ලා තම API ආරක්ෂණය තහවුරු කරගැනීමට, මධ්යස්ථ සේවකයක් (proxy, queue) භාවිතා කරන විට raw payload එක වෙනස් නොකරන්නා යුතු බව ඉගෙන ගනී. ව්යාපාරිකයන් සඳහා, මෙවැනි ආකාරයේ මාර්ගයක් භාවිතා කරමින් ආරක්ෂිත ගෙවීම් ප්රවාහයක් නිර්මාණය කළ හැකි අතර, අදාළ ගැටලු හඳුනාගැනීමේ පරීක්ෂණයක් ලෙස HMAC සාර්ථකත්වය භාවිතා කළ හැකිය.
අවසානයේ, HMAC සත්යාපනය සාර්ථක වීමෙන්, මාර්ගයේ කිසිදු byte‑මාරු කිරීමක් නොවූ බව තහවුරු වේ. එය පූර්ණයෙන්ම “payload preservation” බවට පරීක්ෂා කරයි, නමුත් සෑම header එකක් හෝ connection‑level විස්තරයක් HMAC‑යට ඇතුළත් නොවේ. ඒ නිසා, HMAC සාර්ථකත්වය එම අංශවලින් ආරක්ෂාව තහවුරු කරන ප්රායෝගික සාක්ෂියක් ලෙස ගත හැක.
ඉදිරියේදී, webhook මාරු කිරීමේ ආරක්ෂාව තවත් පරීක්ෂා කරමින්, නව සේවාදායකයන්ගේ signing scheme අනුගමනය කිරීමේ වැදගත්කම තහවුරු කරගත යුතුය.