1.1, Аноним (1), 23:43, 18/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +41 +/– |
Те, у кого по какой-то причине до сих пор нигде нет жавы во все щели, выдохнули. В очередной раз.
| |
|
2.26, Онаним (?), 07:07, 19/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Угу. Пара аппликух есть, но всё Not Affected, судя по приведённому листу, да и во внешний мир они не смотрят.
| |
2.39, Аноним (39), 10:49, 19/12/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да успокойтесь. Не все используют log4j2, и не всех оно касается даже из тех, кто использует.
| |
|
3.62, Аноним (21), 20:25, 19/12/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
> не всех оно касается даже из тех, кто использует.
"У меня нет дыры, у меня нет дыры...", - это такая новая молитва, что ли?
| |
|
4.94, Аноним (39), 17:36, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Нет. Здравый расчёт и понимание архитектуры своих приложений и используемых ими библиотек.
| |
|
|
|
1.2, zloykakpes (ok), 23:46, 18/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Ну логично, в принципе. После нахождения уязвимости каждый старается по максимуму накинуть вариаций, как бы ей воспользоваться. После всей этой истории log4j будет пуленепробиваемым с отличной базой тестов для QA.
| |
|
2.5, Аноним (5), 00:23, 19/12/2021 [^] [^^] [^^^] [ответить]
| +16 +/– |
Спекулятивное выполнение уже стало пуленепробиваемым после всей той истори?
| |
2.31, Онаним (?), 09:48, 19/12/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
> После всей этой истории некоторые вариации так и останутся неопубликованными
Fixed
| |
2.40, Аноним (39), 10:50, 19/12/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> log4j будет пуленепробиваемым
Или все плюнут на неё и просто будут использовать другой логгер. Благо, переходники с log4j на другие бакенды есть.
| |
|
3.121, Аноним (-), 08:04, 24/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Отлично, а они эти чудные выражовывания реализуют? И если да, то они это секурно делают? :)
| |
|
|
|
4.78, Наме (?), 11:31, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Потому что нужно стараться делать в рамках кодовой базы SE или ЕЕ, а не тянуть всякую хваль. Есть JUL. Он дубовый и простой. Он входит в стандартную библиотеку и его оперативно фиксят. Вот его и стоит использовать, а не всяких хлако-спринг с кучей индусятины в зависимостях.
| |
4.99, andy (??), 21:03, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
syslog, слушает 514/udp, если rsyslog, то еще и tcp можно настроить, для гарантированной доставки. Не благодари.
| |
|
|
|
|
2.9, Аноним (21), 00:41, 19/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> в этом году
Кто сказал, что им не пользовались в предыдущих годах?!
| |
2.80, Наме (?), 11:33, 20/12/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Майки выкатили кор 6, им нужно потолкаться на уже сложившемся рынке. Вот и "открыли" протухшие консервы.
| |
|
1.7, Аноним (7), 00:39, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
С нормальными политиками fw исходящего траффика с продакшена риски можно заметно снизить.
Костыль до нормального патча всех проектов.
| |
|
2.47, Аноним (47), 11:41, 19/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Почти всегда DNS-трафик разрешен, т.к. нужен. Пихаешь данные в base64 и отправляешь на свой поддомен, который обслуживает твой DNS сервер.
Как от этого защититься fw? Мне кажется, никак. Тут только какие-то хитрые IPS/IDS с анализом интенсивности трафика или сигнатурами по определенной структуре запросов. Или вы про первичное выкачивание java-класса?
| |
|
3.57, Аноним (7), 15:09, 19/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Правильно настроенный fw не ограничивается tcp/udp портами in/out.
Все пихания данных по DNS через base64 это огромное кол-во TXT запросов с хоста в дмз, которые так же
нужно резать. Все крупные IPS это умеют уже с начала 10х годов, можно загуглить "block dns tunneling"
| |
|
4.87, MVK (??), 13:01, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
>JNDI-запрос это не DNS-запрос
- если в качестве реестра не используется DNS-сервер, что возможно. Выпендрился чисто ради расширения юзерского кругозора
| |
|
|
|
|
2.12, iZEN (ok), 01:30, 19/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Log4j — сторонняя библиотека логирования. В самой Java JRE/JDK есть собственная библиотека логирования, которая менее подвержена уязвимостям.
| |
|
|
4.96, Аноним (96), 19:33, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Сам Спринг (spring-core) зависит от JCL, а в Spring Boot (spring-boot-starter-logging) по дефолту Logback.
| |
|
|
2.22, Аноним (21), 03:47, 19/12/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Библиотека для троянов. Это надо же наумиться надо было разыменовывать внешние строки...
| |
|
1.11, Аноним (11), 01:24, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Нужно валидировать данные которые записываешь в лог!
А ещё нужно делать обесклычивание, как советуют местные эксперты.
| |
|
2.23, Аноним (21), 03:49, 19/12/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Давным-давно в телеграммах писали так: "приеду завтра зпт встречайте тчк". Это так, для намёка современным индусам.
| |
|
3.111, Аноним (11), 14:25, 21/12/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Тчк/зпт использовалось не потому что программисты индусы и не хотят записи в лог валидировать, а из за сложности переключения страниц в телеграфе
Написать такой логер в котором выполнение произвольного кода, это надо какую-то особую форму гениальности иметь
| |
|
2.68, Аноним (68), 03:41, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
И какая там валидация должна быть? Нужно было код библиотеки прочитать и понять, что надо удалять хитрожопые подстановки, но тогда логика библиотеки перетечет в логику валидации. Вывод тут простой: библиотека логирования делала по умолчанию то, чего не должна была делать.
| |
|
1.14, Wilem82 (ok), 02:14, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +9 +/– |
> Опасность уязвимости сглаживает то, что проблема проявляется только на системах с Java 8.
"Сглаживает"? Это как бы основная версия жавы в продакшене. В жаве 9 сломали обратную совместимость так сильно, что многие до сих пор мигрировать не могут.
| |
|
|
3.16, Wilem82 (ok), 02:38, 19/12/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
> кто в трезвом уме и здравой памяти будет переводить прод на java 9?
Её поддержка уже один раз чуть не закончилась. Но она таки когда-нибудь закончится. Кому-то это может по-барабану, но большие конторы так не могут - они обязаны соблюдать определённые правила. Например о том, что должна быть поддержка - используемые библиотеки должны официально поддерживаться, то есть для них выпускаются патчи при обнаружении проблем и всё такое.
Плюс сами библиотеки могут заканчивать поддержку старых версий жавы. Мир-то тоже не стоит на месте.
| |
|
4.119, Тинус Лорвальдс (ok), 18:39, 22/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> кто в трезвом уме и здравой памяти будет переводить прод на java 9?
> Её поддержка уже один раз чуть не закончилась. Но она таки когда-нибудь
> закончится. Кому-то это может по-барабану, но большие конторы так не могут
> - они обязаны соблюдать определённые правила. Например о том, что должна
> быть поддержка - используемые библиотеки должны официально поддерживаться, то есть для
> них выпускаются патчи при обнаружении проблем и всё такое.
> Плюс сами библиотеки могут заканчивать поддержку старых версий жавы. Мир-то тоже не
> стоит на месте.
с каких пор поддержка джавы 9 не закончилась? она закончилась с выходом джавы 10.
| |
|
|
2.17, Аноним (17), 02:40, 19/12/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ни разу не было проблем с миграцией на LTS. На Java 11 все отлично мигрируется.
| |
|
3.18, Wilem82 (ok), 02:51, 19/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> На Java 11 все отлично мигрируется.
Что такое "отлично"? Это когда ничего делать не надо, просто заменяешь 8 на 11 и всё само работает? Или всё-таки приходится обновлять мажорные версии зависимостей - спринга, гибера и прочего?
| |
|
4.19, Вася (??), 03:01, 19/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Отлично от миграции с 2 на 3 питон проекта сложнее Hello World.
| |
4.30, zog (??), 09:14, 19/12/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
Мы уже на Java 17 перешли, но нам проще, поскольку проект новый. А вы активно используете Unsafe и прочие вещи JVM, которые лишь для внутреннего использования?
| |
|
5.56, Wilem82 (ok), 15:08, 19/12/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> А вы активно используете Unsafe и прочие вещи JVM, которые лишь для внутреннего использования?
При чём тут "мы"? Этим всем пользуются популярные библиотеки. Перестают они этим пользоваться только в новых версиях, зачастую мажорных, ломающих обратную совместимость. Поэтому переход на J9+ тянет за собой огромные затраты по миграции чуть ли не всех библиотек на новые версии с переписыванием кода, а некоторые библиотеки вообще не имеют версии для J9+, поэтому приходится их выкидывать и переписывать код ранее от них зависящий.
Если у вас новый проект, то вы не "перешли" на J17, т.е. переходить не с чего - проект новый. "Переход" имеет смысл в контексте уже существующего проекта, завязанного на J8, и таких проектов с 20-, 15-, 10-ти летней историей и кучей старого кода - навалом.
| |
|
6.90, Аноним (90), 13:18, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Можете привести пример таких экзотических библиотек? Что-то мне ни разу такие не попадались. Или это самописные?
| |
|
7.118, Wilem82 (ok), 17:58, 22/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Можете привести пример таких экзотических библиотек? Что-то мне ни разу такие не
> попадались. Или это самописные?
Экзотические библиотеки с обратной несовместимостью при смене мажорной версии:
https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-F
Плюс все зависимости которые в связи с этим надо тоже обновить.
Плюс ещё одна экзотическая, самописная библа "Hibernate", и так далее.
Не говоря уже о том, что начиная с J9, из stdlib физически удалили некоторые API.
| |
|
|
|
4.89, Аноним (90), 13:15, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Там всего несколько мест на самом деле которые поменялись и могут сломать системы, например поведение Set когда не найден элемент. Если их не использовать активно, то все ок. И если какие-то библиотеки используют module, то придется дать права старому кода на доступ к внутренностям (но это уже болье вина самих библиотек чем приложения). Ну и еще нужно проверить поведение зависимостей. В остальном если не на проекте не увлекались экзотическими функциями, то переход делается сменой номерков с 8 на 11.
| |
|
|
4.88, MVK (??), 13:05, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Эталонные JEE работают только на 8-ке
- это Вы книге какого года издания прочли?
| |
|
5.93, Наме (?), 15:36, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Пятая Рыба работает стабильно только на 8-ке. Для этого и книг никаких не надо.
| |
|
6.98, MVK (??), 20:47, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Пятая Рыба работает стабильно только на 8-ке
- дружище, зачем пятая то? Eclipse GlassFish 6.2.3 - вышел в ноябре и с версии 6.1 поддерживает Java 11. А можно и WildFly качнуть, он тоже давно Java 11 поддерживает (WildFly 24 и на Java 17 может)
| |
6.103, Аноним (-), 23:15, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
GlassFish был эталоном 10 лет назад на сановских наработках. Но зачем его сейчас то использовать?.... Оракл там на развитие ресурсы почти не выделяет.
| |
|
7.106, Наме (?), 10:08, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Рыбы как были эталонной реализацией, так ею и остаются. 6-тая ветка пока не стандартизирована. Поэтому 5-ка до сих пор актуальна. Это для тех, кто не хочет вот таких вот... сюрпризов. Для прочих -- есть спринг.
| |
|
8.109, MVK (??), 11:31, 21/12/2021 [^] [^^] [^^^] [ответить] | +/– | - брехня какая то jakarta ee compatibility tab-9 И 6й GlassFish и WildFly 23 п... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.20, Аноним (21), 03:43, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> зацикливание ... "${${::-${::-$${::-j}}}}"
Растаманы, где вы?! Как это починить самым безопасным языком в мире?
| |
|
|
3.29, Andrey (??), 08:24, 19/12/2021 [^] [^^] [^^^] [ответить]
| +7 +/– |
У растоманов логи с продакшена собираются на этапе компиляции. :)
| |
|
2.32, Аноним (11), 09:55, 19/12/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Няша, ты ещё регулярные выражения не видел.
А как увидишь, сразу седым станешь.
| |
|
3.122, Аноним (-), 08:05, 24/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
p.s. это не то что вы подумали, это - для регулярок.
| |
|
|
1.35, Аноним (35), 10:16, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
кто может толково объяснить почему этот log4j все пытаются патчить, а не заменят на что-нибудь другое?
| |
|
|
3.41, Аноним (21), 10:53, 19/12/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
> пропатчить дешевле
пока не получается - всё новые и новые дыры получаются.
| |
3.45, Аноним (45), 11:38, 19/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
По десять раз накатывать это шерето и оно до сих пор уязвимо. Там уже украли всю инфу какую можно было украсть.
| |
|
2.67, Ordu (ok), 01:22, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Да, я могу объяснить.
1. Я сомневаюсь, что _все_ пытаются патчить, _вместо_ того, чтобы переползать.
2. Те, кто решил переползать закончат этот процесс ещё не скоро. Это может занять до полугода. И что ты им предложишь? Не патчить и жить с дырявым? Или уйти в оффлайн на это время?
3. log4j может использоваться депендансом, или несколькими. Так что мало свой код увести от lod4j, надо и чужой тоже.
4. Со временем дыры залатают. И когда это случится, вот сядут разрабы и задумаются: а собственно нахрена мы переползали?
5. Я читал мнение в интернете, что по-крайней мере первая дыра с ldap существовала благодаря обратной совместимости. Может разрабы log4j переосмыслят свой подход к обратной совместимости, перепилят синтаксис форматной строки, отломав оттуда 90% финтифлюшек, оставят ровно столько функционала, чтоб не более 5% зависимых проектов заметило бы изменение, и для этих 5% приделают опцию сборки "enable-deprecated-format-string"?
Короче, ещё рано делать выводы о том, отказывается ли кто-то или нет, и стоит ли овчинка выделки.
| |
|
3.72, Аноним (21), 08:17, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> переползать ... Это может занять до полугода
А, может, надо не переползать, а бежать? Тогда быстрее будет. Были времена, когда за год писали язык программирования + ось. Сейчас же программисты умеют только ползать от дыры к дыре.
| |
|
4.77, Ordu (ok), 10:37, 20/12/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> переползать ... Это может занять до полугода
> А, может, надо не переползать, а бежать? Тогда быстрее будет.
Тебе нужна стабильность или скорость? Тут ситуация такая, что чем быстрее бежишь, чем дольше выходит. Программирование требует от программиста, чтобы тот _думал_ _головой_. А мышление требует времени. Те кто бежит -- те не думают, они пытаются решить проблему брутфорсом. Это работает ровно до тех пор, пока оно не перестаёт работать, и вот после этого уже не остаётся никакого выбора, кроме как выкинуть результат и начать заново.
> Были времена,
> когда за год писали язык программирования + ось.
Да, и Солнце было ярче, и память меряли в килобайтах. И те оси ничего не умели по сегодняшним меркам, и, соответственно, никому не нужны сегодня. Некоторые из языков программирования остались, но если ты присмотришься, они остались вовсе не потому, что нельзя сделать лучше, а потому, что переползать на новые и более подходящие для задачи языки сложнее, чем продолжать пользоваться убогими.
| |
|
5.108, Наме (?), 10:35, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Хорошее ПО это прежде всего про деньги, а не про думающих программистов. Про очень большие деньги и длительные циклы возврата инвестиций. Т.е. хорошее ПО в нынешних экономических реалиях невозможно хотя бы по экономическим причинам.
| |
|
|
|
2.83, Наме (?), 11:42, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Причина простая. Увы, большинство крупных проектов на Жабе, мягко скажем, крайне сложны своей бессистемностью и объёмом. Народ массово и бездумно использует чужой код, благо тянуть его через maven очень просто. Хвост зависимостей более-менее развитого проекта очень уж разухабист, а чаще всего в проекте просто нет людей, которые бы хоть как-то себе представляли весь "масштаб бедствия".
| |
|
3.104, Аноним (-), 23:19, 20/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
В любом более-менее современном пакетном менеджере для Java очень легко вырезать ненужные зависимости. И даже полная перепаковка со сборкой нужных классов для Java не проблема. log4j2 заменяется переходником на slf4j, и всё. В том то и дело, что проблема очень странная. Зачем так держаться за log4j2? Кто использует какие-то фичи из него, которых не хватает в slf4j?
| |
|
4.107, Наме (?), 10:17, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Может быть, но по-моему, не меняется он легко в проекте, которому лет дцать, и у которого за это время группа разработки менялась сто раз. Это адский гемор.
В любом "пакетном менеджере" )))) Это в каком же? Везде maven. Вы знаете ещё какие-то? У шибко продвинутых bnd. Где-то в пыли gradle и ant.
| |
|
5.112, Аноним (39), 19:11, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
gradle, maven, sbt, ivy, ... Откройте maven search и посмотрите - https://search.maven.org/artifact/org.springframework/spring/5.2.19.RELEASE/po
И да, если в maven что-то сделать - это ужас-ужас, то в gradle чужие зависимости исключаются простым exclude. Как, впрочем, и миграция с maven на gradle в большинстве случаев проблем не вызывает. Но если вам нравится садомазо, то технически можете и в maven поправить.
| |
|
6.113, iZEN (ok), 19:18, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
> gradle, maven, sbt, ivy, ... Откройте maven search и посмотрите - https://search.maven.org/artifact/org.springframework/spring/5.2.19.RELEASE/po
> И да, если в maven что-то сделать - это ужас-ужас, то в
> gradle чужие зависимости исключаются простым exclude.
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
</exclusion>
</exclusions>
> Как, впрочем, и миграция с
> maven на gradle в большинстве случаев проблем не вызывает. Но если
> вам нравится садомазо, то технически можете и в maven поправить.
Можем использовать == используем. Садомазо с Gradle сами занимайтесь.
| |
|
7.117, Аноним (-), 11:21, 22/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
configurations.all {
exclude group: "log4j", module: "log4j"
}
PS: нравится XML-программирование - пользуйтесь. Обычно люди хотят иметь удобный и надёжный инструмент....
| |
|
|
|
|
|
|
|
2.63, Аноним (63), 20:30, 19/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|'{;;y; -/:-@[-'{-};'-{/" -;;s;;$_;see'
| |
|
1.59, pda (ok), 18:05, 19/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот это и есть opensource эффект миллиона глаз. В популярном пакете нашлась дыра и все на хайпе ринулись копать - что там есть ещё. :)
| |
1.70, Аноним (70), 08:11, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Кто конкретно внёс указанную уязвимость? С современными системами контроля версий выяснить это не составляет труда. Почему старательно обходятся вопросы персональной ответственности разработчика? Или лицензия на этот самый Log4j не даёт возможность привлекать разработчиков? Тогда почему сотни проектов используют код, за который никто и никак не отвечает? Всё это очень странно.
| |
|
2.75, Аноним (75), 10:04, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
А почему ты обходишь такой вопрос что ты можешь сам поиском найти коммиты и во всеуслышание всем написать имя виноватого? Неужели мировая закулисья добралась и до тебя?
| |
|
1.73, Аноньимъ (ok), 08:20, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>защита от неконтролируемой рекурсии
Похоже я узнал о существовании чего-то о чём мне не стоило знать.
| |
|
2.76, Аноним (75), 10:07, 20/12/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да факт существования такой защиты это секрет. Не стоит вскрывать эту тему. Ты молодой, шутливый, тебе все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, ты будешь жалеть. Лучше закрой тему и забудь, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
| |
|
|
2.105, Аноним (21), 00:56, 21/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
> логи бинарные
Как не стыдно такое говорить! Логов - множество разновидностей: гомонарные, лезбинарные, транснарные...
| |
|
|