На днях решил посмотреть как работает «то, о чём так много говорят». Оставим за кадром рассуждения на тему актуальности и необходимости свежеиспечённого законодательства, сконцентрируем внимание на реализации одного из важных звеньев предложенной системы — сайте единого реестра запрещённых ресурсов и его работе в части подачи заявки на внесение ресурса в этот реестр.
В качестве жертвы был выбран сайт весьма сомнительного китайского интернет-магазина, работающего тем не менее с русскоязычными пользователями и размещённого на домене в зоне «.ru». Опустим развёрнутое описание ситуации, просто надеюсь почтенная публика примет на веру, что жертва нагрешила более чем достаточно, чтобы по крайней мере выступить в роли подопытного кролика в данном эксперименте. Однако стоит оговориться, что формально ни одной из категорий запрещённого контента на сайте не присутствует, по крайней мере мной не было обнаружено ни пропаганды суицида или наркотиков, ни детской порнографии.
Приступим к эксперименту, опишем наши действия, подытожим результаты и сделаем выводы.
Цели эксперимента
1. Проверить возможность добавления обычным гражданином произвольного ресурса в единый государственный реестр запрещённых источников, используя лишь широко распространённые средства доступа в сеть.
2. Получить ответ на свою инициативу.
3. Зафиксировать обнаруженные проблемы, если они появятся.
4. Оценить работу системы.
Описание эксперимента
Как обычный смертный, лишь слышавший звон, но не зная где он, я обратился к поисковой системе Яндекс, которая даже не дослушав до конца вводимый мной запрос, угадала его точной подсказкой. Попав на сайт реестра у меня не возникло проблем найти в незамысловатом меню раздел для подачи заявки на добавления ресурса в реестр, хотя и сухое бюрократическое наименование пункта меню «Прием сообщений» не слишком интуитивно воспринимается как именно то, что мне было нужно, но среди четырёх пунктов этот оказался единственным со смысловым содержанием подразумевающим обратную связь — запутаться не получилось.
Теперь передо мной открылась страница с сухим текстом в «бла-бла-бла» (2600+ символов) и искомой формой под ней. Вообще изысками юзабилити подобные системы не блещут, потому заголовок формы под текстом, оформленный как обычный текст страницы и лишь выделенный полужирностью, да ещё и с текстом «Подать сообщение о ресурсе содержащем запрещенную информацию», меня конечно не слишком удивил.
Обязательное поле формы «Указатель страницы сайта в сети «Интернет» (с обязательным указанием протокола)» действительно требует заполнения протокола, как впрочем и отсутствия предварительных пробелов, кои у меня случайно вставились в поле перед значением при копировании через буфер обмена операционной системы из внешнего источника.
Дальнейшее исследование также показало, что почти все проверки значений заполненных полей формы на соответствие нужным форматам либо весьма поверхностны, либо отсутствуют как класс. Никакого AJAX, отправка формы приводит к полной перезагрузке страницы. И, разумеется, в лучших традициях бюрократии — обнаруженные серверным ПО ошибки заполнения предъявляются строго по одной на каждую попытку отправки запроса. Ну и конечно тест Тьюринга, даже при удачном прохождении оного в очередной неудачной итерации подачи запроса, предстоит проходить вновь и вновь. Из положительный моментов следует отметить лишь сохранение значений заполненных полей при отправке формы при неудачной попытке.
Отдельного внимания заслужило поле «Дополнительная информация», требующее максимальной длины текстового значения в размере 500 символов. Во-первых требование предъявляется в виде ошибки, в соответствие с озвученной выше традицией, лишь строго после попытки отправки формы. Во-вторых попытка ввести 340 символов (на 92 % состоящих из символов кириллицы) в это поле также окончилась неудачей. По всей видимости проверка длины строкового значения производится для однобайтных кодировок, несмотря на то, что сайт работает с кодировкой UTF-8. Как простой смертный я об этом не подозреваю и сокращаю текст до момента, когда форма наконец не примется сервером.
В конце концов я преодолеваю все сложности и результат заполнения формы проглатывается сервером, о чём мне выдаётся довольно невзрачное сухое сообщение и опять передо мной та же форма, но на сей раз очищенная от результата заполнения. Стоп! А где страница с подтверждением? Ну чтобы посмотреть — что же я ввёл, убедиться, что всё верно и подтвердить, или наоборот — найти ошибку и вернуться к правке вводимых данных? Я ж вроде не такое уж пустяковое действие совершаю — подаю заявку на блокировку ресурса для миллионов людей, а вдруг галочку не там поставил? Ну ладно: хоть так приняли.
Результаты эксперимента
Ждём реакции, тем более, что я вводил в данных свой адрес электронной почты и устанавливал галочку «направлять ответ по эл. почте». Напоминаю: заявка моя заведомо ложная, хотя я не обозначал это напрямую.
Проходят сутки. По электронной почте приходит ответ:
Здравствуйте!
Благодарим Вас за активную гражданскую позицию, однако сообщаем, что указанный в Вашем обращении адрес http://… .ru/ не содержит информации, предусмотренной частью 5 статьи 15.1 Федерального закона от 27 июля 2006 г. N 149-ФЗ «Об информации, информационных технологиях и о защите информации».
С уважением,
ФЕДЕРАЛЬНАЯ СЛУЖБА ПО НАДЗОРУ В СФЕРЕ СВЯЗИ, ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И МАССОВЫХ КОММУНИКАЦИЙ.
Здесь любопытна тема письма, которая выглядит вот таким образом:
РОСКОМНАДЗОР инфор??ирует
А всё потому, что кодировка письма опять же выполнена без учёта деталей фальцовки полей заголовков, описанной в RFC, и особенностей этого процесса для многобайтных кодировок:
Subject: =?utf-8?B?0KDQntCh0JrQntCc0J3QkNCU0JfQntCgINC40L3RhNC+0YDQ?= =?utf-8?B?vNC40YDRg9C10YI=?=
Не всё прошло так гладко как хотелось бы, но тем не менее главная задача выполнена: подача запроса и получение ответа произошли успешно. Более того — моя заявка была распознана как ложная и отклонена.
Выводы
Самое интересное конечно же здесь. Капитанский вывод о том, что система работает, мы конечно уже сделали. Вопрос в том, действительно ли можно воспринимать такой информационный продукт достаточно качественным, чтобы им могли пользоваться (потенциально, разумеется) пользователи в масштабах населения целой страны? Неужели нельзя было обойтись без такой халтуры (не самой ужасной, признаю) в реализации веб-морды этого проекта?
P. S.: Сразу отвечу на вопрос «почему не сообщил разработчикам о багах»: да потому что никаких очевидных средств для этого на сайте по всей видимости просто не предусмотрено.
Автор: Pagefest