Andrey Stolyarov

Андрей Викторович Столяров: сайт автора

UPD (21.01.2025): в версии 0.3.50 обнаружились неприятные ошибки, доступен архив версии 0.3.51.

UPD (22.01.2025): и вдогонку версия 0.3.52.

Недавно двое вебанутых дегенератов наглядно продемонтрировали мне, что в комменты можно засунуть жабаскрипт, невзирая на фильтр: теги script и object, конечно, в число разрешённых не входят, но до сей поры Таласса фильтровала только теги (по их именам), а все атрибуты оставляла как есть. Между тем комитетская мразь, придумавшая HTML5, впендюрила туда «событийные» атрибуты вроде onlclick, onpageshow и прочее в таком духе, а лишённые, похоже, последних остатков мозга браузерописатели положили с прибором на то, документ какого типа они рендерят, так что все эти (вроде бы специфичные для HTML5) атрибуты стали «работать» сразу везде. в том числе в XHTML, где их отродясь не было. Плюс к тому я почему-то (не спрашивайте, почему) думал, что из этих атрибутов можно только вызывать функции, описанные где-то ещё, типа если нет скриптов, то и вызывать будет нечего. На самом деле, естественно, туда можно засунуть произвольный скрипт, и если бы я об этом хотя бы на полминуты задумался, то, конечно, догадался бы — но я не задумался.

В общем, пришлось мне несколько дней потратить на переписывание фильтра. Там практически честный конечный автомат, и в нём в итоге стало чуть ли не вдвое больше состояний. Получившуюся в итоге версию я только что выложил под номером 0.3.50.

Если на вашем сайте есть техническая возможность оставить комментарий без прохождения премодерации, обновляйтесь прямо сейчас. Во всех остальных случаях можно так сильно не торопиться. В любом случае скорее всего при переходе на эту версию с предыдущей ничего не сломается. Ну, не должно. В конфигах (и самой Талассы, и CGI) в секции [format] появился параметр tag_attributes, перечисляющий разрешённые атрибуты, но если его нет (а откуда бы ему взяться, пока вы его руками не написали), по умолчанию используется строка a=href img=src img=alt, т.е. в комментах (с точки зрения Талассы — в текстовых файлах с заголовками, где в поле format: присутствует токен tags, предписывающий прогонять контент через фильтр тегов) разрешается только использовать атрибут href в тегах a и атрибуты src и alt в тегах img. Вряд ли в комментах на вашем сайте можно найти что-нибудь ещё, если только среди ваших комментаторов не нашлось больших затейников.

Инджой, короче.


From rkvg-es (unverified) Wed Jan 29 01:44:02 2025 UTC pencil

опечатка :(

> UPD (22.01.2025): и в догонку версия 0.3.52.

Алексей Викторович, Вы меня простите сердечно, но ведь "вдогонку" же!

parent From Andrey V. Stolyarov profile Wed Jan 29 09:34:37 2025 UTC pencil

userpic

Re: опечатка :(

Факт, спасибо

From vbcnthfkmnth123 (unverified) Wed Jan 22 19:25:59 2025 UTC pencil

теги

Зачем вы используете фильтр для тегов по черным спискам? Почему бы вам не использовать белый список тегов? А все остальные например запретить.

parent From Andrey V. Stolyarov profile Wed Jan 22 20:21:39 2025 UTC pencil

userpic

Re: теги

Даже интересно, откуда вы взяли этот бред. Читать здесь. TLDR: разумеется, я использую именно список разрешённых тегов. Ну, во всяком случае там, где фильтрация включена (читай — в комментах). Тексты, которые пишу лично я сам, фильтрации тегов не подвергаются, что и понятно. Но там, где фильтрация производится, остаются только теги (а теперь ещё и атрибуты) из списка разрешённых, остальные просто молча исчезают.

Вообще вы бы ещё спросили, перестал ли я пить коньяк по утрам. Зла не хватает на такое, ей-богу.

parent From Anonymous (unverified) Wed Jan 22 22:08:01 2025 UTC pencil

Re: Re: теги

Не автор исходного комментария, но могу сказать откуда он это взял: на L.O.R., как обычно, кто-то, не читав ни код, ни что-то ещё, решил, что тут используются черные списки, а все остальные в том обсуждении естественно ему поверили.

Ну, а автор комментария также естественно притащил это сюда, не попытавшись открыть код или хотя бы документацию.

parent From Andrey V. Stolyarov profile Wed Jan 22 22:52:14 2025 UTC pencil

userpic

Re: теги

А, ну толпы вебанутых и прочих ньюфагов с лора, конечно, ещё и не такого понапишут и не в такое поверят, да.

From lor (unverified) Wed Jan 22 10:17:57 2025 UTC pencil

Инвалиды умственного труда

Где-то видел ваш комментарий про бОльшую часть LOR-a. После выхода новости о последней версии Thalassa сомнений не осталось.

 "...готов сам подносить вам патроны." (с) lfy192 

parent From Andrey V. Stolyarov profile Wed Jan 22 10:21:06 2025 UTC pencil

userpic

Re: Инвалиды умственного труда

Я, честно говоря, на L.O.R. ходить в последнее время совсем перестал. А что, там кто-то кинул новость про Талассу?

parent From lor (unverified) Wed Jan 22 10:26:45 2025 UTC pencil

Re: Re: Инвалиды умственного труда

Да, эти глупцы поливают вас грязью. Вера в человечество практически уничтожена, они так ничего и не поняли. Тем временем количество комментариев растет, а количество программ, для сборки которых нужен только make + gcc + unix остается прежним. Даже интересно, когда они уже начнут делать что-то полезное?

parent From Andrey V. Stolyarov profile Wed Jan 22 10:43:57 2025 UTC pencil

userpic

Re: Re: Re: Инвалиды умственного труда

Эти? Никогда, разумеется.

Таки любопытство пересилило, сходил глянул. На последней (на текущий момент) странице комментов:

Показано 13 сообщений из 92

(если кто не понял, остальные в игноре). И чего мне туда ходить, когда почти всё в игноре. Мне вот интересно, сам Макском тоже на собственное творение больше не ходит? Или он как-то эти потоки дебилизма ухитряется переваривать? При случае спрошу :-)

parent From Gloria (unverified) Thu Jan 23 15:48:12 2025 UTC pencil

LOR

Однако на LOR-е вас явно любят: за пару дней накомментировали аж на 12 страниц, что в одной теме (про Талассу), что в другой (про учебник).

parent From Andrey V. Stolyarov profile Thu Jan 23 15:55:25 2025 UTC pencil

userpic

Re: LOR

Ну, э... тяжело, наверное, жить с огнемётом в анусе

parent From Anonymous (unverified) Wed Jan 22 11:12:02 2025 UTC pencil

Re: Инвалиды умственного труда

Ага, кинул. В этом топике кто-то даже выдумал, что вы якобы сами эту новость кинули на ЛОРе из-под другого аккаунта в целях самопиара :)

parent From Andrey V. Stolyarov profile Wed Jan 22 11:34:00 2025 UTC pencil

userpic

Re: Инвалиды умственного труда

Ага, и где там моя целевая аудитория? В упор не вижу.

parent From lor (unverified) Thu Jan 23 15:18:35 2025 UTC pencil

Они не могут смириться

Я надеялся, что этот маразм утихнет на второй день, но нет. 12 страниц и уже более 500 комментариев под просто новостью о CMS. Вы звезда, Андрей Викторович :D. Люди буквально не могут смириться с тем, что кто-то все же сделал нормальную книжку и нормальную программу для сайтов. Я такого еще не видел! Там даже кто-то умудрился скинуть какой-то сайт, который на js работает быстрее...э...статических HTML страниц? Градус абсурда накаляется: учить программировать предлагают на ассемблере, с него переходить на питон и сразу использовать го. Ну вот, буду считать посетил зоопарк.

parent From Andrey V. Stolyarov profile Thu Jan 23 16:00:32 2025 UTC pencil

userpic

Re: Они не могут смириться

> Я надеялся, что этот маразм утихнет на второй день

Что вы что вы, это ж лор

> сайт, который на js работает быстрее

Ну, лично я про скорость работы вроде никого не спрашивал. Исполнение на чужом устройстве тьюринг-полного кода, которого владелец устройства на это устройство не ставил своим явным осознанным действием — это преступление, за которое в норме следует давать по меньшей мере лет пять тюрьмы с пожизненным запретом на профессию, и это никакого отношения не имеет к скоростям, да и вообще ни к чему, кроме ровно одного: есть моё, есть чужое, и чужое без спроса трогать нельзя. Это не только браузеры, это ещё и навязываемые обновления софта (любого).

parent From diesi (unverified) Thu Jan 23 20:34:10 2025 UTC pencil

Re: Они не могут смириться

> какой-то сайт, который на js работает быстрее...э...статических HTML страниц?

Долбоёбы, сэр: страничка-то та действительно закончила загрузку быстрее, чем гостевая на stolyarov.info, с которой её сравнивали... Потому что на ней байтов в 60 (шесть долбаных десятков) раз меньше, да и CSS куда как примитивнее. А имеющая размер, схожий с воспеваемой, страница более старой новости прогружается столько же времени, по крайней мере, моим глазом на моём железе разница незаметна вообще.

parent From diesi (unverified) Thu Jan 23 20:40:23 2025 UTC pencil

Re: Они не могут смириться

Однако же кое-кого там упорно преследуют умные мысли вроде

Основная поверхность атаки это JS engine, парсеры DOM, CSS и прочее

Но они всё равно бегают быстрее.

parent From Andrey V. Stolyarov profile Thu Jan 23 21:43:41 2025 UTC pencil

userpic

Re: Они не могут смириться

Здесь дело не в поверхности атаки, как ни странно. Если я только правильно понимаю, как это всё делается, наличие по ту сторону дыры, а равно и рядом с дырой услужливо поднятого, полностью инициализированного и готового к работе (точнее, уже работающего) алгоритмически полного интерпретатора, который к тому же радостно бросается исполнять ваще что угодно, только пришлите — изрядно упрощает всю атаку. Люди ведь не роботы, мало знать, что некая дыра эксплойтабельна, нужно ещё и написать эксплойт, и как-то его скормить ломаемому компьютеру. Чтобы делать это на уровне машинного кода, надо обладать изрядным пространственным воображением и вообще определёнными и довольно редкими качествами. То ли дело, когда можно жабаскрипт даже не инжектить, а просто прислать.

From Anonymous (unverified) Wed Jan 22 08:04:32 2025 UTC pencil

Возможно дело в MIME

Ваш сайт отдаётся веб-сервером как text/html, и браузер рендерит его как HTML, надо отдавать его как application/xhtml+xml (указать в настройках веб-сервера), тогда браузер будет рендерить его как XHTML. По крайней мере в таком режиме браузер начинает ругаться на некорректный XHTML.

Не лишним будет и заменить text/html на application/xhtml+xml здесь:

meta http-equiv="Content-Type" content="text/html; charset=koi8-r"

P.S. Не лишним будет и указывать meta description, meta keywords для оптимизации поисковой выдачи.

parent From Andrey V. Stolyarov profile Wed Jan 22 09:49:19 2025 UTC pencil

userpic

Re: Возможно дело в MIME

> application/xhtml+xml

Дебилизм, конечно (поскольку сам смысл application/* в том, чтобы маркировать контент, предназначенный для обработки внешними приложениями, а не самим браузером), но попробовать можно. Только что-то я сомневаюсь, что прямо все браузеры тут же дружно откажутся обрабатывать атрибуты от html5.

> для оптимизации поисковой выдачи

Хернёй не страдаю и не собираюсь.

From MikhailM (unverified) Tue Jan 21 17:52:25 2025 UTC pencil

Thalassa CMS 0.3.50: фильтрация атрибутов в тегах

> разрешается только использовать атрибут href в тегах a и атрибуты src и alt в тегах img.

Андрей Викторович, боюсь вы недооцениваете степень повреждения мозга у браузерописателей, они додумались реализовать вызов жабьего скрипта даже через содержимое href. Об этом на ЛОРе написали в обсуждении.

В href можно в качестве значения поместить что-нибудь такое: javascript:alert('Hello') То есть a href="вот это самое" и оно пролезет через фильтры. Не знаю насчет src и img. Скорее всего, более правильно было бы вообще любые html-теги запретить вставлять, а вместо них пресловутый bbcode или markdown или что-то свое.

parent From Andrey V. Stolyarov profile Tue Jan 21 19:12:30 2025 UTC pencil

userpic

Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах

Я уже в курсе, да. Ну, здесь у нас премод, так что не пролезет (на onshowpage неприятно было то, что коммент открываешь в очереди на модерацию, а там ОНО).

Свой формат, безусловно, правильнее, но его ещё написать надо. В смысле, парсер для него.

parent From a (unverified) Tue Jan 21 23:48:56 2025 UTC pencil

Re: Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах

Есть же, например, отличная программа для конвертации документов pandoc. Его можно использовать для конвертации markdown в html. Да и помимо этого всего наверняка есть множество готовых библиотек на C/C++ для парсинга большинства популярных форматов.

parent From Andrey V. Stolyarov profile Wed Jan 22 09:43:19 2025 UTC pencil

userpic

Re: Re: Re: Thalassa CMS 0.3.50: фильтрация атрибутов в тегах

> отличная программа для конвертации

И что мне с неё? Если кто думает, что я на Талассу соглашусь посадить внешнюю зависимость такого размера, то он зря так думает.

> наверняка есть множество готовых библиотек

Сколько-нибудь приемлемых я не видел, и, более того, я не возьмусь с ходу спроектировать интерфейс такой библиотеки — а это значит, что скорее всего их приемлемых вообще быть не может.

From lxV (unverified) Tue Jan 21 07:06:59 2025 UTC pencil

relatable

когда-то давно самостоятельно делал комментарии для своего сайта, тоже в фильтре были только теги script и object, а потом зашёл один друг и через атрибуты начал творить "чудеса" - пришлось переписывать)

Знакомая проблема, в общем.

From noanon (unverified) Mon Jan 20 17:54:55 2025 UTC pencil

.

Вебанутые, не вебанутые, но зато видимо шарят и помогли отловить достаточно серьезную багу.

Как вы это заметили, кстати? На премодерации или уже после?

parent From Andrey V. Stolyarov profile Mon Jan 20 17:58:49 2025 UTC pencil

userpic

Re: .

Когда помогают отловить багу, это выглядит иначе. А когда "шарят" в том, как писать жабаскрипт, обычно это означает что данную конкретную особь следует травить дустом примерно на правах подвальной крысы.

Естественно, на премоде всё поймалось, там ведь показывается коммент в том виде, в котором он окажется на странице.

parent From noanon (unverified) Mon Jan 20 18:13:45 2025 UTC pencil

Re: Re: .

"Помогли" - это я про результат, а не способ. Теперь на сайты без премодерации не пролезет всякое.

> А когда "шарят" в том, как писать жабаскрипт, обычно это означает что данную конкретную особь следует травить дустом примерно на правах подвальной крысы.

С одной стороны, конечно, да, но с другой - "чтобы поймать преступника, нужно думать как преступник". Вы же сами пишете, что комбо из комитета и разработчиков браузера подложило такую мину, из чего напрашивается печальный вывод о необходимости изучения подобных тонких вопросов для продолжения комфортного пребывания в веб-пространстве.

parent From Andrey V. Stolyarov profile Mon Jan 20 18:18:13 2025 UTC pencil

userpic

Re: .

Ну оно, конечно, да, но нет (tm). Вот никак я не могу себя заставить испытывать хоть чуть-чуть признательности к этим двум моральным уродам.

А комфортное пребывание в веб-пространстве, похоже, уже невозможно принципиально. Веб должен умереть.


pencil

пояснение


Вы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям.

Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда.

Андрей Михайлович Столяров в библиотеке Мошкова

Авторские права © Андрей Викт. Столяров, 2009 — 2025