เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เชเชตเชพ เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช‡เชจเซเชœเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชŸเซเชฐเซ‹เชœเชจ เชธเซ‹เชฐเซเชธ เชเชŸเซ‡เช•

เชฏเซเชจเชฟเชตเชฐเซเชธเชฟเชŸเซ€ เช“เชซ เช•เซ‡เชฎเซเชฌเซเชฐเชฟเชœเชจเชพ เชธเช‚เชถเซ‹เชงเช•เซ‹เช เชชเซ€เช…เชฐ-เชธเชฎเซ€เช•เซเชทเชพ เช•เชฐเซ‡เชฒ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชฎเชพเช‚ เชฆเซ‚เชทเชฟเชค เช•เซ‹เชกเชจเซ‡ เชถเชพเช‚เชคเชฟเชชเซ‚เชฐเซเชตเช• เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซ€ เชคเช•เชจเซ€เช• เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เช›เซ‡. เชคเซˆเชฏเชพเชฐ เชนเซเชฎเชฒเชพเชจเซ€ เชชเชฆเซเชงเชคเชฟ (CVE-2021-42574) เชŸเซเชฐเซ‹เชœเชจ เชธเซเชคเซเชฐเซ‹เชค เชจเชพเชฎ เชนเซ‡เช เชณ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชฒเช–เชพเชฃเชจเซ€ เชฐเชšเชจเชพ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡ เชœเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ/เชฆเซเชญเชพเชทเชฟเชฏเชพ เช…เชจเซ‡ เช•เซ‹เชก เชœเซ‹เชจเชพเชฐ เชตเซเชฏเช•เซเชคเชฟ เชฎเชพเชŸเซ‡ เช…เชฒเช— เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชชเชฆเซเชงเชคเชฟ เชฒเชพเช—เซ เช•เชฐเชตเชพเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ C, C++ (gcc เช…เชจเซ‡ clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go เช…เชจเซ‡ Python เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชตเชฟเชตเชฟเชง เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ เช…เชจเซ‡ เชฆเซเชญเชพเชทเชฟเชฏเชพเช“ เชฎเชพเชŸเซ‡ เชฆเชฐเซเชถเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡.

เชชเชฆเซเชงเชคเชฟ เช•เซ‹เชก เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชตเชฟเชถเชฟเชทเซเชŸ เชฏเซเชจเชฟเช•เซ‹เชก เช…เช•เซเชทเชฐเซ‹เชจเชพ เช‰เชชเชฏเซ‹เช— เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡ เชœเซ‡ เชฆเซเชตเชฟเชชเช•เซเชทเซ€เชฏ เชŸเซ‡เช•เซเชธเซเชŸ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชพเชฏ เชคเซ‡ เช•เซเชฐเชฎเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ‡ เช›เซ‡. เช†เชตเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชฎเชฆเชฆเชฅเซ€, เชŸเซ‡เช•เซเชธเซเชŸเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เชญเชพเช—เซ‹เชจเซ‡ เชกเชพเชฌเซ‡เชฅเซ€ เชœเชฎเชฃเซ‡ เช…เชจเซ‡ เช…เชจเซเชฏเชจเซ‡ เชœเชฎเชฃเซ‡เชฅเซ€ เชกเชพเชฌเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชฐเซ‹เชœเชฟเช‚เชฆเชพ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เช†เชตเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชซเชพเช‡เชฒเชฎเชพเช‚ เชนเซ€เชฌเซเชฐเซ เช…เชฅเชตเชพ เช…เชฐเชฌเซ€เชฎเชพเช‚ เชฐเซ‡เช–เชพเช“ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชเช• เชฒเซ€เชŸเซ€เชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชŸเซ‡เช•เซเชธเซเชŸ เชฆเชฟเชถเชพเช“ เชธเชพเชฅเซ‡ เชฐเซ‡เช–เชพเช“เชจเซ‡ เชœเซ‹เชกเซ‹ เช›เซ‹, เชคเซ‹ เชœเชฎเชฃเซ‡เชฅเซ€ เชกเชพเชฌเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชŸเซ‡เช•เซเชธเซเชŸเชจเชพ เชซเช•เชฐเชพเช“ เชกเชพเชฌเซ‡เชฅเซ€ เชœเชฎเชฃเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชตเชฐเซเชคเชฎเชพเชจ เชธเชพเชฆเชพ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ‡ เช“เชตเชฐเชฒเซ‡เชช เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เช† เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชคเชฎเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชฆเซ‚เชทเชฟเชค เชฐเชšเชจเชพ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชชเช›เซ€ เช•เซ‹เชก เชœเซ‹เชคเซ€ เชตเช–เชคเซ‡ เช† เชฐเชšเชจเชพ เชธเชพเชฅเซ‡เชจเชพ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เช†เช—เชฒเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เชฎเชพเช‚ เช…เชฅเชตเชพ เชถเชพเชฌเซเชฆเชฟเช•เชจเซ€ เช…เช‚เชฆเชฐ เชœเชฎเชฃเซ‡เชฅเซ€ เชกเชพเชฌเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช…เช•เซเชทเชฐเซ‹ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡, เชœเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡. เชฆเซ‚เชทเชฟเชค เช‡เชจเซเชธเชฐเซเชŸ เชชเชฐ เชตเชฟเชตเชฟเชง เชชเชพเชคเซเชฐเซ‹ เชธเซเชชเชฐเช‡เชฎเซเชชเซ‹เช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช†เชตเซ‹ เช•เซ‹เชก เชธเชฟเชฎเซ‡เชจเซเชŸเซ€เช•เชฒเซ€ เชธเชพเชšเซ‹ เชฐเชนเซ‡เชถเซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเซเช‚ เช…เชฐเซเชฅเช˜เชŸเชจ เช…เชจเซ‡ เช…เชฒเช— เชฐเซ€เชคเซ‡ เชฆเชฐเซเชถเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เชเชตเชพ เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช‡เชจเซเชœเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชŸเซเชฐเซ‹เชœเชจ เชธเซ‹เชฐเซเชธ เชเชŸเซ‡เช•

เช•เซ‹เชก เชฐเชฟเชตเซเชฏเซ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชกเซ‡เชตเชฒเชชเชฐ เชตเชฟเชเซเชฏเซเช…เชฒ เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ เช“เชฐเซเชกเชฐเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เช†เชงเซเชจเชฟเช• เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเชฎเชพเช‚, เชตเซ‡เชฌ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชฅเชตเชพ IDEเชฎเชพเช‚ เชถเช‚เช•เชพเชธเซเชชเชฆ เชŸเชฟเชชเซเชชเชฃเซ€ เชœเซ‹เชถเซ‡, เชชเชฐเช‚เชคเซ เช•เชฎเซเชชเชพเชˆเชฒเชฐ เช…เชจเซ‡ เชฆเซเชญเชพเชทเชฟเชฏเชพ เชฒเซ‹เชœเชฟเช•เชฒ เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ เช“เชฐเซเชกเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‡ เช…เชจเซ‡ เช…เชตเช—เชฃเชจเชพ เช•เชฐเซ€เชจเซ‡ เชฆเซ‚เชทเชฟเชค เชจเชฟเชตเซ‡เชถเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชถเซ‡. เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชฆเซเชตเชฟเชฆเชฟเชถ เชŸเซ‡เช•เซเชธเซเชŸ. เชธเชฎเชธเซเชฏเชพ เชตเชฟเชตเชฟเชง เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เช•เซ‹เชก เชธเช‚เชชเชพเชฆเช•เซ‹ (VS เช•เซ‹เชก, Emacs, Atom), เชคเซ‡เชฎเชœ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เช (GitHub, Gitlab, BitBucket เช…เชจเซ‡ เชคเชฎเชพเชฎ เชเชŸเชฒเชพเชธเชฟเชฏเชจ เช‰เชคเซเชชเชพเชฆเชจเซ‹) เชฎเชพเช‚ เช•เซ‹เชก เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เชเชตเชพ เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช‡เชจเซเชœเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชŸเซเชฐเซ‹เชœเชจ เชธเซ‹เชฐเซเชธ เชเชŸเซ‡เช•

เชฆเซ‚เชทเชฟเชค เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช˜เชฃเซ€ เชฐเซ€เชคเซ‹ เช›เซ‡: เช›เซเชชเชพเชฏเซ‡เชฒเชพ "เชฐเซ€เชŸเชฐเซเชจ" เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเชจเซ‡ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡, เช•เชพเชฐเซเชฏ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพเช‚ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡; เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฎเชพเชจเซเชฏ เชฐเชšเชจเชพเช“ เชคเชฐเซ€เช•เซ‡ เชœเซ‹เชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ เชชเชฐ เชŸเชฟเชชเซเชชเชฃเซ€ เช•เชฐเชตเซ€ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชคเชชเชพเชธเชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡); เช…เชจเซเชฏ เชธเซเชŸเซเชฐเชฟเช‚เช— เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชธเซ‹เช‚เชชเชฃเซ€, เชœเซ‡ เชธเซเชŸเซเชฐเชฟเช‚เช— เชฎเชพเชจเซเชฏเชคเชพ เชจเชฟเชทเซเชซเชณเชคเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชนเซเชฎเชฒเชพเช–เซ‹เชฐ เชซเซ‡เชฐเชซเชพเชฐ เชธเซ‚เชšเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชฒเซ€เชŸเซ€เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡: if access_level != "user{U+202E} {U+2066}// เชคเชชเชพเชธเซ‹ เช•เซ‡ เชเชกเชฎเชฟเชจ{U+2069} {U+2066}" {

เชœเซ‡ เชฐเซ€เชตเซเชฏเซ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ‡ as if access_level != "user" { // เชคเชชเชพเชธเซ‹ เช•เซ‡ เชเชกเชฎเชฟเชจ

เชตเชงเซเชฎเชพเช‚, เช…เชจเซเชฏ เชเชŸเซ‡เช• เชตเซ‡เชฐเชฟเช…เชจเซเชŸเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ (CVE-2021-42694), เชนเซ‹เชฎเซ‹เช—เซเชฒเชฟเชซเซเชธเชจเชพ เช‰เชชเชฏเซ‹เช— เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเชพ, เช…เช•เซเชทเชฐเซ‹ เชœเซ‡ เชฌเชพเชนเซเชฏเชฐเซ‚เชชเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชธเชฎเชพเชจ เชนเซ‹เชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฐเซเชฅเชฎเชพเช‚ เชญเชฟเชจเซเชจ เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชฏเซเชจเชฟเช•เซ‹เชก เช•เซ‹เชก เชงเชฐเชพเชตเซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซเชฐเชคเซ€เช• "ษ‘" เชœเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡" a", "ษก" - "g", "ษฉ" - "l"). เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชฎเซ‚เช‚เชเชตเชตเชพ เชฎเชพเชŸเซ‡ เช†เชตเชพ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชŸเชฒเซ€เช• เชญเชพเชทเชพเช“เชฎเชพเช‚ เชซเช‚เช•เซเชถเชจ เช…เชจเซ‡ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒ เชจเชพเชฎเซ‹เชฎเชพเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเชฎเชพเชจ เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชฌเซ‡ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชœเซ‡ เชตเชฟเชตเชฟเชง เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเซ‡ เช›เซ‡. เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชตเชฟเชจเชพ, เชคเซ‡ เชคเชฐเชค เชœ เชธเซเชชเชทเซเชŸ เชฅเชคเซเช‚ เชจเชฅเซ€ เช•เซ‡ เช† เชฌเซ‡ เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚เชฅเซ€ เช•เชฏเชพ เชšเซ‹เช•เซเช•เชธ เชธเซเชฅเชพเชจเซ‡ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เชเชตเชพ เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช‡เชจเซเชœเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชŸเซเชฐเซ‹เชœเชจ เชธเซ‹เชฐเซเชธ เชเชŸเซ‡เช•

เชธเซเชฐเช•เซเชทเชพ เชฎเชพเชชเชฆเช‚เชก เชคเชฐเซ€เช•เซ‡, เชเชตเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ, เชฆเซเชญเชพเชทเชฟเชฏเชพ เช…เชจเซ‡ เชฌเชฟเชฒเซเชก เชŸเซ‚เชฒเซเชธ เช•เซ‡ เชœเซ‡ เชฏเซเชจเชฟเช•เซ‹เชก เช…เช•เซเชทเชฐเซ‹เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเซ‡ เช›เซ‡ เชคเซ‡ เชญเซ‚เชฒ เช…เชฅเชตเชพ เชšเซ‡เชคเชตเชฃเซ€ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‹ เชŸเชฟเชชเซเชชเชฃเซ€เช“, เชธเซเชŸเซเชฐเชฟเช‚เช— เชฒเชฟเชŸเชฐเชฒเซเชธ เช…เชฅเชตเชพ เช†เช‡เชกเซ‡เชจเซเชŸเชฟเชซเชพเชฏเชฐเชฎเชพเช‚ เช…เชœเซ‹เชก เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช…เช•เซเชทเชฐเซ‹ เชนเซ‹เชฏ เชœเซ‡ เช†เช‰เชŸเชชเซเชŸ เชฆเชฟเชถเชพเชจเซ‡ เชตเชฟเชชเชฐเซ€เชค เช•เชฐเซ‡ เช›เซ‡ (U+202A, U+202B , U+202C, U+202D, U+202E, U+2066, U+2067, U+2068, U+2069, U+061C, U+200E เช…เชจเซ‡ U+200F). เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชธเซเชชเซ‡เชธเชฟเชซเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เชชเชฃ เช†เชตเชพ เช…เช•เซเชทเชฐเซ‹ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เชนเซ‹เชตเชพ เชœเซ‹เชˆเช เช…เชจเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เช เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เชเชกเชฟเชŸเชฐเซเชธ เช…เชจเซ‡ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพ เชœเซ‹เชˆเช.

เชชเชฐเชฟเชถเชฟเชทเซเชŸ 1: GCC, LLVM/Clang, Rust, Go, Python เช…เชจเซ‡ binutils เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชจเชฌเชณเชพเชˆ เชธเซเชงเชพเชฐเชพเช“. GitHub, Bitbucket เช…เชจเซ‡ Jira เชฆเซเชตเชพเชฐเชพ เชชเชฃ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. GitLab เชฎเชพเชŸเซ‡ เชซเชฟเช•เซเชธ เชคเซˆเชฏเชพเชฐเซ€เชฎเชพเช‚ เช›เซ‡. เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เช•เซ‹เชกเชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡, เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชธเซ‚เชšเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: grep -r $'[\u061C\u200E\u200F\u202A\u202B\u202C\u202D\u202E\u2066\u2067\u2068\u2069/' เชธเซเชคเซเชฐเซ‹เชค

เชชเชฐเชฟเชถเชฟเชทเซเชŸ 2: Russ Cox, เชชเซเชฒเชพเชจ 9 OS เช…เชจเซ‡ Go เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœเชจเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชฎเชพเช‚เชจเชพ เชเช•, เชตเชฐเซเชฃเชตเซ‡เชฒ เชนเซเชฎเชฒเซ‹ เชชเชฆเซเชงเชคเชฟ เชชเชฐ เชตเชงเซ เชชเชกเชคเชพ เชงเซเชฏเชพเชจเชจเซ€ เชŸเซ€เช•เชพ เช•เชฐเซ€, เชœเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชœเชพเชฃเซ€เชคเซ€ เช›เซ‡ (Go, Rust, C++, Ruby) เช…เชจเซ‡ เชจ เชนเชคเซ€. เช—เช‚เชญเซ€เชฐเชคเชพเชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เซ‹เช•เซเชธเชจเชพ เชœเชฃเชพเชตเซเชฏเชพ เชฎเซเชœเชฌ, เชธเชฎเชธเซเชฏเชพ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ เช•เซ‹เชก เชเชกเชฟเชŸเชฐเซเชธ เช…เชจเซ‡ เชตเซ‡เชฌ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€เชจเชพ เชฏเซ‹เช—เซเชฏ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เชฒเช—เชคเซ€ เช›เซ‡, เช…เชจเซ‡ เชธเชฎเซ€เช•เซเชทเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฏเซ‹เช—เซเชฏ เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€, เชธเชŸเซเชŸเชพเช•เซ€เชฏ เชนเซเชฎเชฒเชพเช“ เชคเชฐเชซ เชงเซเชฏเชพเชจ เชฆเซ‹เชฐเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เช•เซ‹เชก เชธเชฎเซ€เช•เซเชทเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช…เชจเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเชตเซเช‚ เชตเชงเซ เชฏเซ‹เช—เซเชฏ เชฐเชนเซ‡เชถเซ‡.

เชฐเชพเชธ เช•เซ‹เช•เซเชธ เชเชตเซเช‚ เชชเชฃ เชฎเชพเชจเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฎเซเชชเชพเชˆเชฒเชฐเซเชธ เช เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชธเซเชฅเชพเชจ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เช•เชฎเซเชชเชพเชˆเชฒเชฐ เชธเซเชคเชฐเซ‡ เช–เชคเชฐเชจเชพเช• เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพเชฅเซ€ เชŸเซ‚เชฒเซเชธเชจเซ‹ เชตเชฟเชถเชพเชณ เชธเซเชคเชฐ เชฐเชนเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช† เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเซเชตเซ€เช•เชพเชฐเซเชฏ เชฐเชนเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเซเชธ, เชเชธเซ‡เชฎเซเชฌเชฒเชฐเซเชธ, เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐเซเชธ เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชชเชพเชฐเซเชธเชฐเซเชธ เช…เชจเซ‡ เชกเซ‡เชŸเชพ. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฐเชธเซเชŸ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชฃเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐเชฎเชพเช‚ LTR/RTL เช•เซ‹เชกเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชฎเซ‚เช•เซเชฏเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เช•เชพเชฐเซเช—เซ‹ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐเชฎเชพเช‚ เชซเชฟเช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เชจเชฅเซ€, เชœเซ‡ Cargo.toml เชซเชพเช‡เชฒ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชพเชจ เชนเซเชฎเชฒเชพเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชคเซ‡เชตเซ€ เชœ เชฐเซ€เชคเซ‡, BUILD.bazel, CMakefile, Cargo.toml, Dockerfile, GNUmakefile, Makefile, go.mod, package.json, pom.xml เช…เชจเซ‡ requirements.txt เชœเซ‡เชตเซ€ เชซเชพเช‡เชฒเซ‹ เชนเซเชฎเชฒเชพเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹