Комментарии 11
Распознавание вариаций пробелов и вариаций минусов-дефисов-тире обычно делают для того, чтоб копипастить из примеров на сайтах и в блогах можно было.
У меня всегда была parse error такая ошибка, когда пробел был представлен кодом 160. Всегда, во всех языках программирования. Когда я копировал с каких-то сайтов, приходилось через найти и заменить всё убирать эти пробелы с кодом 160. Неразрывные пробел, кажется, называется.
Вот варианты пробелов в юникоде: https://www.compart.com/en/unicode/category/Zs
nbsp (A0 который) встречается крайне часто, особенно при копипасте с сайтов или из ворда.
То же самое с дефисами-минусами, да. В теории, правильно оформленный кусок завернутый в тег code должен быть 1-в-1 для копирования -- но часто встречаются и неоформленные.
Впрочем, проблема тут не в библиотеке разбора, а в использовании WideCharToBultiByte -- именно поэтому проблема в некоторых кодовых страницах, а не вообще.
А почему использование мягкого дефиса зависит от локали? В Юникоде не должно это обрабатываться одинаково разве?
Сначала бодро пишем заманчивый текст
XAMPP - очень популярный способ администраторов и разработчиков развернуть Apache, PHP и множество других инструментов...
а потом скромно забываем дописать "...на уютном домашнем компике под Виндой, где веб-сервер биндится к приватным IP". Понимаю, новость сразу становится не такой вкусной и возникают вопросы, интересна ли она кому-то, кроме очередных мамкиных хакиров, с успехом ломающих собственную венду.
А это точно уязвимость PHP, а не админская "дырка"?
Вы б ещё эвалы включили и прочие богомерзкие вещи.
А тут, apache, cgi, под виндой, сразу видно, что человек любит боль и явно нарывается специально.
Ну, судя по всему, тут именно РНР (правда в невероятном варианте использования). И в целом это неплохая была бы статья для начинающего любителя сайбер секьюрити, который разобрался в этой несложной уязвимости.
Но всё портят попытки набить себе цену на пустом месте и раздуть из лабораторной уязвимости проблему вселенского масштаба. А всего-то надо было честно написать - "Уязвимость представляет скорее академический интерес, но разобрать её интересно".
CVE-2024-4577: Не может быть, PHP опять под атакой