Thalassa CMS 0.3.50: фильтрация атрибутов в тегахMon Jan 20 15:42:07 2025 UTC
Недавно двое вебанутых дегенератов наглядно продемонтрировали мне, что в
комменты можно засунуть жабаскрипт, невзирая на фильтр: теги script и
object, конечно, в число разрешённых не входят, но до сей поры
Таласса фильтровала только теги (по
их именам), а все атрибуты оставляла как есть. Между тем комитетская
мразь, придумавшая HTML5, впендюрила туда «событийные» атрибуты
вроде В общем, пришлось мне несколько дней потратить на переписывание фильтра. Там практически честный конечный автомат, и в нём в итоге стало чуть ли не вдвое больше состояний. Получившуюся в итоге версию я только что выложил под номером 0.3.50. Если на вашем сайте есть техническая возможность оставить
комментарий без прохождения премодерации, обновляйтесь прямо
сейчас. Во всех остальных случаях можно так сильно не торопиться.
В любом случае скорее всего при переходе на эту версию с
предыдущей ничего не сломается. Ну, не должно. В конфигах (и самой
Талассы, и CGI) в секции Инджой, короче. |
пояснениеВы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям. Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда. Андрей Михайлович Столяров в библиотеке Мошкова |
☞ From rkvg-es (unverified) Wed Jan 29 01:44:02 2025 UTC
опечатка :(
> UPD (22.01.2025): и в догонку версия 0.3.52.
Алексей Викторович, Вы меня простите сердечно, но ведь "вдогонку" же!
ответить
From Andrey V. Stolyarov Wed Jan 29 09:34:37 2025 UTC
Re: опечатка :(
Факт, спасибо
ответить
☞ From vbcnthfkmnth123 (unverified) Wed Jan 22 19:25:59 2025 UTC
теги
Зачем вы используете фильтр для тегов по черным спискам? Почему бы вам не использовать белый список тегов? А все остальные например запретить.
ответить
From Andrey V. Stolyarov Wed Jan 22 20:21:39 2025 UTC
Re: теги
Даже интересно, откуда вы взяли этот бред. Читать здесь. TLDR: разумеется, я использую именно список разрешённых тегов. Ну, во всяком случае там, где фильтрация включена (читай — в комментах). Тексты, которые пишу лично я сам, фильтрации тегов не подвергаются, что и понятно. Но там, где фильтрация производится, остаются только теги (а теперь ещё и атрибуты) из списка разрешённых, остальные просто молча исчезают.
Вообще вы бы ещё спросили, перестал ли я пить коньяк по утрам. Зла не хватает на такое, ей-богу.
ответить
From Anonymous (unverified) Wed Jan 22 22:08:01 2025 UTC
Re: Re: теги
Не автор исходного комментария, но могу сказать откуда он это взял: на L.O.R., как обычно, кто-то, не читав ни код, ни что-то ещё, решил, что тут используются черные списки, а все остальные в том обсуждении естественно ему поверили.
Ну, а автор комментария также естественно притащил это сюда, не попытавшись открыть код или хотя бы документацию.
ответить
From Andrey V. Stolyarov Wed Jan 22 22:52:14 2025 UTC
Re: теги
А, ну толпы вебанутых и прочих ньюфагов с лора, конечно, ещё и не такого понапишут и не в такое поверят, да.
ответить
☞ From lor (unverified) Wed Jan 22 10:17:57 2025 UTC
Инвалиды умственного труда
Где-то видел ваш комментарий про бОльшую часть LOR-a. После выхода новости о последней версии Thalassa сомнений не осталось.
ответить
From Andrey V. Stolyarov Wed Jan 22 10:21:06 2025 UTC
Re: Инвалиды умственного труда
Я, честно говоря, на L.O.R. ходить в последнее время совсем перестал. А что, там кто-то кинул новость про Талассу?
ответить
From lor (unverified) Wed Jan 22 10:26:45 2025 UTC
Re: Re: Инвалиды умственного труда
Да, эти глупцы поливают вас грязью. Вера в человечество практически уничтожена, они так ничего и не поняли. Тем временем количество комментариев растет, а количество программ, для сборки которых нужен только make + gcc + unix остается прежним. Даже интересно, когда они уже начнут делать что-то полезное?
ответить
From Andrey V. Stolyarov Wed Jan 22 10:43:57 2025 UTC
Re: Re: Re: Инвалиды умственного труда
Эти? Никогда, разумеется.
Таки любопытство пересилило, сходил глянул. На последней (на текущий момент) странице комментов:
Показано 13 сообщений из 92
(если кто не понял, остальные в игноре). И чего мне туда ходить, когда почти всё в игноре. Мне вот интересно, сам Макском тоже на собственное творение больше не ходит? Или он как-то эти потоки дебилизма ухитряется переваривать? При случае спрошу :-)
ответить
From Gloria (unverified) Thu Jan 23 15:48:12 2025 UTC
LOR
Однако на LOR-е вас явно любят: за пару дней накомментировали аж на 12 страниц, что в одной теме (про Талассу), что в другой (про учебник).
ответить
From Andrey V. Stolyarov Thu Jan 23 15:55:25 2025 UTC
Re: LOR
Ну, э... тяжело, наверное, жить с огнемётом в анусе
ответить
From Anonymous (unverified) Wed Jan 22 11:12:02 2025 UTC
Re: Инвалиды умственного труда
Ага, кинул. В этом топике кто-то даже выдумал, что вы якобы сами эту новость кинули на ЛОРе из-под другого аккаунта в целях самопиара :)
ответить
From Andrey V. Stolyarov Wed Jan 22 11:34:00 2025 UTC
Re: Инвалиды умственного труда
Ага, и где там моя целевая аудитория? В упор не вижу.
ответить
From lor (unverified) Thu Jan 23 15:18:35 2025 UTC
Они не могут смириться
Я надеялся, что этот маразм утихнет на второй день, но нет. 12 страниц и уже более 500 комментариев под просто новостью о CMS. Вы звезда, Андрей Викторович :D. Люди буквально не могут смириться с тем, что кто-то все же сделал нормальную книжку и нормальную программу для сайтов. Я такого еще не видел! Там даже кто-то умудрился скинуть какой-то сайт, который на js работает быстрее...э...статических HTML страниц? Градус абсурда накаляется: учить программировать предлагают на ассемблере, с него переходить на питон и сразу использовать го. Ну вот, буду считать посетил зоопарк.
ответить
From Andrey V. Stolyarov Thu Jan 23 16:00:32 2025 UTC
Re: Они не могут смириться
> Я надеялся, что этот маразм утихнет на второй день
Что вы что вы, это ж лор
> сайт, который на js работает быстрее
Ну, лично я про скорость работы вроде никого не спрашивал. Исполнение на чужом устройстве тьюринг-полного кода, которого владелец устройства на это устройство не ставил своим явным осознанным действием — это преступление, за которое в норме следует давать по меньшей мере лет пять тюрьмы с пожизненным запретом на профессию, и это никакого отношения не имеет к скоростям, да и вообще ни к чему, кроме ровно одного: есть моё, есть чужое, и чужое без спроса трогать нельзя. Это не только браузеры, это ещё и навязываемые обновления софта (любого).
ответить
From diesi (unverified) Thu Jan 23 20:34:10 2025 UTC
Re: Они не могут смириться
> какой-то сайт, который на js работает быстрее...э...статических HTML страниц?
Долбоёбы, сэр: страничка-то та действительно закончила загрузку быстрее, чем гостевая на stolyarov.info, с которой её сравнивали... Потому что на ней байтов в 60 (шесть долбаных десятков) раз меньше, да и CSS куда как примитивнее. А имеющая размер, схожий с воспеваемой, страница более старой новости прогружается столько же времени, по крайней мере, моим глазом на моём железе разница незаметна вообще.
ответить
From diesi (unverified) Thu Jan 23 20:40:23 2025 UTC
Re: Они не могут смириться
Однако же кое-кого там упорно преследуют умные мысли вроде
Но они всё равно бегают быстрее.
ответить
From Andrey V. Stolyarov Thu Jan 23 21:43:41 2025 UTC
Re: Они не могут смириться
Здесь дело не в поверхности атаки, как ни странно. Если я только правильно понимаю, как это всё делается, наличие по ту сторону дыры, а равно и рядом с дырой услужливо поднятого, полностью инициализированного и готового к работе (точнее, уже работающего) алгоритмически полного интерпретатора, который к тому же радостно бросается исполнять ваще что угодно, только пришлите — изрядно упрощает всю атаку. Люди ведь не роботы, мало знать, что некая дыра эксплойтабельна, нужно ещё и написать эксплойт, и как-то его скормить ломаемому компьютеру. Чтобы делать это на уровне машинного кода, надо обладать изрядным пространственным воображением и вообще определёнными и довольно редкими качествами. То ли дело, когда можно жабаскрипт даже не инжектить, а просто прислать.
ответить
☞ From Anonymous (unverified) Wed Jan 22 08:04:32 2025 UTC
Возможно дело в MIME
Ваш сайт отдаётся веб-сервером как text/html, и браузер рендерит его как HTML, надо отдавать его как application/xhtml+xml (указать в настройках веб-сервера), тогда браузер будет рендерить его как XHTML. По крайней мере в таком режиме браузер начинает ругаться на некорректный XHTML.
Не лишним будет и заменить text/html на application/xhtml+xml здесь:
P.S. Не лишним будет и указывать meta description, meta keywords для оптимизации поисковой выдачи.
ответить
From Andrey V. Stolyarov Wed Jan 22 09:49:19 2025 UTC
Re: Возможно дело в MIME
> application/xhtml+xml
Дебилизм, конечно (поскольку сам смысл application/* в том, чтобы маркировать контент, предназначенный для обработки внешними приложениями, а не самим браузером), но попробовать можно. Только что-то я сомневаюсь, что прямо все браузеры тут же дружно откажутся обрабатывать атрибуты от html5.
> для оптимизации поисковой выдачи
Хернёй не страдаю и не собираюсь.
ответить
☞ From MikhailM (unverified) Tue Jan 21 17:52:25 2025 UTC
Thalassa CMS 0.3.50: фильтрация атрибутов в тегах
> разрешается только использовать атрибут href в тегах a и атрибуты src и alt в тегах img.
Андрей Викторович, боюсь вы недооцениваете степень повреждения мозга у браузерописателей, они додумались реализовать вызов жабьего скрипта даже через содержимое href. Об этом на ЛОРе написали в обсуждении.
В href можно в качестве значения поместить что-нибудь такое: javascript:alert('Hello') То есть a href="вот это самое" и оно пролезет через фильтры. Не знаю насчет src и img. Скорее всего, более правильно было бы вообще любые html-теги запретить вставлять, а вместо них пресловутый bbcode или markdown или что-то свое.
ответить
From Andrey V. Stolyarov Tue Jan 21 19:12:30 2025 UTC
Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах
Я уже в курсе, да. Ну, здесь у нас премод, так что не пролезет (на onshowpage неприятно было то, что коммент открываешь в очереди на модерацию, а там ОНО).
Свой формат, безусловно, правильнее, но его ещё написать надо. В смысле, парсер для него.
ответить
From a (unverified) Tue Jan 21 23:48:56 2025 UTC
Re: Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах
Есть же, например, отличная программа для конвертации документов pandoc. Его можно использовать для конвертации markdown в html. Да и помимо этого всего наверняка есть множество готовых библиотек на C/C++ для парсинга большинства популярных форматов.
ответить
From Andrey V. Stolyarov Wed Jan 22 09:43:19 2025 UTC
Re: Re: Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах
> отличная программа для конвертации
И что мне с неё? Если кто думает, что я на Талассу соглашусь посадить внешнюю зависимость такого размера, то он зря так думает.
> наверняка есть множество готовых библиотек
Сколько-нибудь приемлемых я не видел, и, более того, я не возьмусь с ходу спроектировать интерфейс такой библиотеки — а это значит, что скорее всего их приемлемых вообще быть не может.
ответить
☞ From lxV (unverified) Tue Jan 21 07:06:59 2025 UTC
relatable
когда-то давно самостоятельно делал комментарии для своего сайта, тоже в фильтре были только теги script и object, а потом зашёл один друг и через атрибуты начал творить "чудеса" - пришлось переписывать)
Знакомая проблема, в общем.
ответить
☞ From noanon (unverified) Mon Jan 20 17:54:55 2025 UTC
.
Вебанутые, не вебанутые, но зато видимо шарят и помогли отловить достаточно серьезную багу.
Как вы это заметили, кстати? На премодерации или уже после?
ответить
From Andrey V. Stolyarov Mon Jan 20 17:58:49 2025 UTC
Re: .
Когда помогают отловить багу, это выглядит иначе. А когда "шарят" в том, как писать жабаскрипт, обычно это означает что данную конкретную особь следует травить дустом примерно на правах подвальной крысы.
Естественно, на премоде всё поймалось, там ведь показывается коммент в том виде, в котором он окажется на странице.
ответить
From noanon (unverified) Mon Jan 20 18:13:45 2025 UTC
Re: Re: .
"Помогли" - это я про результат, а не способ. Теперь на сайты без премодерации не пролезет всякое.
> А когда "шарят" в том, как писать жабаскрипт, обычно это означает что данную конкретную особь следует травить дустом примерно на правах подвальной крысы.
С одной стороны, конечно, да, но с другой - "чтобы поймать преступника, нужно думать как преступник". Вы же сами пишете, что комбо из комитета и разработчиков браузера подложило такую мину, из чего напрашивается печальный вывод о необходимости изучения подобных тонких вопросов для продолжения комфортного пребывания в веб-пространстве.
ответить
From Andrey V. Stolyarov Mon Jan 20 18:18:13 2025 UTC
Re: .
Ну оно, конечно, да, но нет (tm). Вот никак я не могу себя заставить испытывать хоть чуть-чуть признательности к этим двум моральным уродам.
А комфортное пребывание в веб-пространстве, похоже, уже невозможно принципиально. Веб должен умереть.
ответить