Комментарии 10
А разве после RLI сам return не будет перевернут при отображении ("nruter")? Он же не один символ, а много.
00000000 74 68 69 73 20 69 73 e2 81 a6 20 72 65 74 75 72 |this is... retur|
00000010 6e 0a |n.|
Не смог найти редактор, который его обрабатывает как указано. Все игнорируют, pycharm делает так:
![](https://i.ibb.co/vxbvyn1/Screenshot.png)
Неужели кто-то ревьюирует код без подсветки? А подсветка-то наверное все же подсвечивать будет не по тому, как отображается, а по тому, как в коде следует. Хотя идея запрещать всякие левые символы в коде/идентификаторах здравая.
Да ничего она не здравая, это синдром вахтёра, всё запрещать. Почему бы каким-нибудь арабам на писать переменные или комментарии на своём, на арабском, справа налево?
Правильный фикс — нельзя переключать на RTL внутри строки или комментария , а обратно на LTR внутри другой строки или комментария. Внутри той же строки или комментария — можно. Такой фикс разрешит все нормальные варианты использования и отсечёт эксплоиты
Непонятно, нафига вообще указывать, что вам надо что-то переключать. Арабский и так справа-налево пишется, зачем это еще дополнительно указывать? По самой букве этого не видно?
Ну, есть же в Unicode символы для переключения (202B), надо что-то с ними делать. А так да, по букве видно. Вот пример без всяких дополнительных символов.
Рассуждения Russ Cox о Trojan source (tl;dr; - всё не страшно и, более того, не ново) https://research.swtch.com/trojan
Интересно, в каких-то языках программирования такие спецсимволы вообще могут быть где-то кроме комментариев?
Security Week 44: Trojan Source, или как скрыть вредоносный код в исходниках