JavaScript කේතයේ ක්‍රියා සැඟවීමට නොපෙනෙන යුනිකෝඩ් අක්ෂර භාවිතා කිරීම

ද්විපාර්ශ්වික පෙළෙහි සංදර්ශක අනුපිළිවෙල වෙනස් කරන යුනිකෝඩ් අක්ෂර භාවිතය මත පදනම් වූ ට්‍රෝජන් මූලාශ්‍ර ප්‍රහාර ක්‍රමය අනුගමනය කරමින්, සැඟවුණු ක්‍රියා හඳුන්වාදීම සඳහා තවත් තාක්ෂණික ක්‍රමයක් ප්‍රකාශයට පත් කර ඇත, එය JavaScript කේතයට අදාළ වේ. නව ක්‍රමය පදනම් වී ඇත්තේ “ㅤ” (කේතය 0x3164, “HANGUL FILLER”) යුනිකෝඩ් අක්ෂරය භාවිතය මත වන අතර එය අකුරු කාණ්ඩයට අයත් වන නමුත් දෘශ්‍යමාන අන්තර්ගතයක් නොමැත. මෙම අක්ෂරය අයත් වන Unicode කාණ්ඩය ECMAScript 2015 පිරිවිතරයේ සිට JavaScript විචල්‍ය නම්වල භාවිතය සඳහා අවසර දී ඇති අතර, Notepad++ සහ VS Code වැනි ජනප්‍රිය කේත සංස්කාරකවල ඇති වෙනත් විචල්‍යයන්ගෙන් වෙන්කර හඳුනාගත නොහැකි අදෘශ්‍යමාන විචල්‍යයන් හෝ නව විචල්‍යයන් නිර්මාණය කිරීමට හැකි වේ.

උදාහරණයක් ලෙස, Node.js වේදිකාව සඳහා කේතය ලබා දී ඇත, එහි "ㅤ" තනි අක්ෂරයකින් සමන්විත විචල්‍යයක් භාවිතා කරමින්, ප්‍රහාරකයා විසින් නියම කරන ලද කේතය ක්‍රියාත්මක කිරීමට ඉඩ සලසන පසුබිම් දොරක් සඟවා ඇත: app.get('/ network_health', async (req, res) = > {const {timeout,ㅤ} = req.query; // ඇත්ත වශයෙන්ම එය පවසන්නේ “const {timeout,ㅤ \u3164}” const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',ㅤ // කොමාවට පසුව \u3164 ];

මුලින්ම බැලූ බැල්මට, බාහිර පරාමිතිය හරහා කල් ඉකුත්වීමේ අගය පමණක් සම්මත වන අතර, ක්රියාත්මක කළ යුතු විධාන සහිත අරාව හානිකර ස්ථාවර ලැයිස්තුවක් අඩංගු වේ. නමුත් ඇත්ත වශයෙන්ම, කල් ඉකුත් වීමේ විචල්‍යයට පසුව, අක්ෂර කේතය \u3164 සමඟ තවත් අදෘශ්‍යමාන විචල්‍යයක අගය පවරනු ලැබේ, එය ක්‍රියාත්මක කළ හැකි විධාන මාලාවට ද ආදේශ කරනු ලැබේ. මේ අනුව, එවැනි නිර්මාණයක් තිබේ නම්, ප්‍රහාරකයෙකුට “https://host:8080/network_health?%E3%85%A4=command” වැනි ඉල්ලීමක් යැවීමට පසු දොර සක්‍රිය කිරීමට සහ ඔවුන්ගේ කේතය ක්‍රියාත්මක කිරීමට හැකිය.

තවත් උදාහරණයක් නම් "ǃ" (ALVEOLAR CLICK) අක්ෂරය විස්මිත ලක්ෂ්‍යයක් දැක්වීමට භාවිතා කළ හැක. උදාහරණයක් ලෙස, Node.js 14 හි ක්‍රියාත්මක කරන විට “if(environmentǃ=ENV_PROD){” යන ප්‍රකාශය සෑම විටම සත්‍ය වනු ඇත, මන්ද එය වෙනස සඳහා පරීක්ෂා නොකරන නමුත් ENV_PROD හි අගය “environmentǃ” විචල්‍යයට පවරන බැවිනි. වෙනත් නොමඟ යවන යුනිකෝඩ් අක්ෂරවලට "/", "-", "+", "⩵", "❨", "⫽", "꓿" සහ "∗" ඇතුළත් වේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න