Уязвимость в автозамене нецензурных слов

Автор Jerry, 24 апреля 2008, 19:24:20

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Jerry

Я нашел такую странность:
Если напечатать в сообщении очень много слов, которые есть в списке автозамены,
то после отправки тема закончит загрузку и прервется на месте сообщения, а сообщение не покажется. Вместо него: сообщение о нехватке памяти! "Maximum amount of...". И если на главной странице есть список последних постов и в нем оказалось это зловещее сообщение, то главная не будет открываться вообще (белая страница и сообщении о истечении 30 секунд)! И любое место, как либо ссылающееся на него, недоступно. Из-за этого пост нельзя удалить стандартными средствами, отредактировать и т.д. И для этого даже не нужно слишком много раз повторять заменяемое слово, память заполнится обень быстро.

Таким образом, если пользователь не имеет прямого доступа к БД, то очень многое будет заблокировано!
Вот, например, какое слово на этом форуме включено в автозамену?


Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Jerry

Цитата: digger от 24 апреля 2008, 19:59:18
"очень много слов" это сколько?
Я не считал, но всё по-разному. Ведь это зависит от длины заменяющей фразы еще.
У меня просто заменяющая фраза была целым рассказом (!) об использовании этого слова! А заменяемое - смайлик с тремя скобками. Таким образом, каждая замена делала сообщение в пол страницы. По этому, у других может быть немного по-другому.

Mavn, а можно мне здесь написать собаку женского пола 50-150 раз? (доступ к базе ведь есть?)

bbbbbb


Jerry

Да вот думаю, что фильтрация никакая не может помочь..
Что же делать? Может просто не делать заменяющий текст размером с пол страницы?
Но наверное это не выход, нужно контролировать память. А я не знаю, как в php узнать
лимит и занятость памяти сервера. :( Я просто рассказал, что так можно навредить форуму.
Для тестирования, можете поставить на тестовом форуме автозамену
Цитировать$$
на
Цитировать... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
А потом послать такой пост:
Цитировать$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Jerry

Это уже не связано с автозаменой. :)
Цитироватья написал ничего не изменилось
А это значит, что слишком малая заменяюЩАЯ строка, или слишком большая заменяеМАЯ, или мало копий заменяемой в сообщении. Согласен, обычно это не грозит, но, думаю,
не я один вставляет в заменяющую строку какой-то длинный текст. А тогда пользователь может накопировать запретное слово хоть до заполнения максимального объема сообщения, а тогда лимит оперативки не выдержит. Но это наверное на бесплатных хостингах, там лимит жесткий (у меня оказалось 32 МБ, смотря на сообщение о выдаваемой ошибке). А на платном может и напишет 5000 запретных слов (заполнит весь объем сообщения), а замена будет в целую страницу, выйдет у него обработка 5000 страниц, а серверу ничего. :)

Просто у меня оказался другой случай, может он и редкий, но все же, написал. Ведь обработка автозамены сделана не при отправке поста, а при КАЖДОМ чтении. В этом то и суть: написать чел сможет, а прочитать, удалить, открыть главную и т.д. нельзя будет.

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

bbbbbb

Цитата: Mavn от 24 апреля 2008, 22:15:24
в общем разделе пиши что угодно

сори, я хотел перефразировать автора топика просто....