qatoolqa.ru

Каверзные строки для тестирования полей

Набор строк, на которых поля ввода обычно и падают: эмодзи и составные символы, RTL, нулевые байты, кавычки и SQL, XSS-заготовки, очень длинные значения, пробелы по краям. Копируйте по одной или списком — это готовый чек-лист негативных проверок для любой формы.

Набор

Как этим пользоваться

Возьмите строку кнопкой «Копировать» и вставьте в проверяемое поле. Интересует не то, примут её или отвергнут, — оба ответа бывают правильными. Интересует, что произойдёт дальше.

Хороший исход: поле либо аккуратно отказало с понятным сообщением, либо сохранило строку целиком и показало её обратно ровно такой же.

Плохой исход: сохранило молча и обрезало; показало «???» или ромбики с вопросом; отвалилось с ошибкой 500; выполнило то, что вы вставили; или приняло, но перестало находить эту запись поиском.

Смотреть надо не только в само поле. Строка выстреливает там, куда её потом подставляют: в списке записей, в админке, в письме-уведомлении, в выгрузке CSV, в логе. Проверяйте весь путь.

Кнопка «Скопировать все» отдаёт текущую категорию по одной строке на строку — удобно вставить в таблицу с тест-данными или прогнать пачкой.

Пустая строка и строка из одного пробела копируются тоже — они выглядят как ничего, но это полноценные тест-кейсы.

Что означают метки

Часть этих строк не видно в принципе: невидимый символ на то и невидимый. Поэтому в таблице они нарисованы так — метка с именем символа. Копируется при этом настоящая строка, с настоящим невидимым символом внутри, а не метка.

ZWSP, ZWNJ, ZWJ, WJ — символы нулевой ширины. Занимают место в строке, но не рисуются.

NBSP — неразрывный пробел, SHY — мягкий перенос. Выглядят как обычный пробел и как ничего.

BOM — метка порядка байтов. Приезжает в начале файла и ломает разбор.

RLO, LRO, RLM, LRM — управление направлением письма. Именно они переворачивают показ текста, не меняя самой строки.

NUL, TAB, LF, CR — управляющие символы: нулевой байт, табуляция, перевод строки, возврат каретки.

Пробел по краям строки помечен  , чтобы его было видно: без метки « край » и «край» на экране неотличимы.

Осторожно с двумя категориями

Инъекции проверяйте только там, где имеете право. На своём стенде, на своём проекте, на копии базы. Строка '; DROP TABLE users;-- на боевой базе может сделать ровно то, что написано. Ожидаемое поведение исправной системы — сохранить её как обычный текст.

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

Частые вопросы

Что именно ломается на этих строках?

Разное: эмодзи и составные символы — расчёт длины, RTL — вёрстку и порядок символов, нулевой байт — обрезку строки на бэкенде, кавычки — склеенный SQL, угловые скобки — вывод без экранирования.

Это законно применять на проде?

Строки безобидны сами по себе, но SQL и XSS-варианты стоит запускать только на своих стендах и в рамках согласованного тестирования.

Как понять, что нашёлся баг, а не просто «странно выглядит»?

Смотрите на несоответствие: сохранилось не то, что ввели; ошибка вместо понятного сообщения; вывод, в котором разметка сработала как код.