Пример тестирования поля «Имя»
Что вводить в строку? Символы русские, английские, спецсимволы, циферки, перемешал — готово! Но так и робот может проверить, тестировщик то зачем?)) И как вы отловите баги, когда имя “Иван” считается некорректным, потому что распространенное? (А такое бывает — пруфлинк, поиск по «Иванов Иван Иванович»)
Тренер Ольга Назина подготовила пример тестирования поля «Имя» для своих студентов — смотрите и вдохновляйтесь! :) Столько уникальных для поля тестов, а ведь казалось бы, простая строка.
#2 Spock- ФИО: Роман
прикольненько, только без инджектиков :(
ну и раскладочка не только русская и английская бывает, может и немец со своими ö и ß прийти, или китаец с иероглифами
#3 Freiman- ФИО: Андрей Адеркин
- Город: Йошкар-Ола
- ФИО: Ольга Назина (Киселева)
- Город: Москва
прикольненько, только без инджектиков :(
ну и раскладочка не только русская и английская бывает, может и немец со своими ö и ß прийти, или китаец с иероглифами
Я бы все же отнесла это к спецсимволам :)
Хотя, безусловно, разные раскладки — интересные кейсы, но в первую очередь у нас используются именно русская и английская :)
И кейс "забыл сменить раскаладку" или "я пишу транслитом и мне на всех по барабану" все же чаще, чем "я пришел на русский сайт и пишу по арабски" =)
Просто иероглифы или писанина "задом наперед" — это как раз проверки абстрактной строки.
- имя
- паспорт
- кличка котика
- название школы
- организация
- должность
- .
- ФИО: Роман
ну инджекты это не спецсимволы :) конечно они содержат спецсимволы, но смысл совершенно другой
пример самого простого XSS инджекта, в поле имя вводим:
Если ввелось, то ищем на каких веб-интерфейсах потом оно будет отображаться, может у пользователей, может у оператора. Если энкодинга не было и скрипт отрабатывает, окошко 123 показывается, то хакер может взломать или пользователей системы либо самого оператора
и конечно в скрипте не будет безобидное окошко 123 ;)
вот студенты будут думать "узко" и прошляпят даже очевидные уязвимости
#6 Spock- ФИО: Роман
Хотя, безусловно, разные раскладки — интересные кейсы, но в первую очередь у нас используются именно русская и английская :)
И кейс "забыл сменить раскаладку" или "я пишу транслитом и мне на всех по барабану" все же чаще, чем "я пришел на русский сайт и пишу по арабски" =)
ну вот потом начальнику попробуй объясни это :) "ну я же тестировал только основные кейсы про большинство людей"
мы же тестируем без учёта "насколько частый вариант"
например в поле "сумма перевода" мы конечно введём и "0" и "-1", мы ведь не скажем "ну большинство клиентов ведь будут позитивные суммы вводить"
#7 Molechka- ФИО: Ольга Назина (Киселева)
- Город: Москва
ну инджекты это не спецсимволы :) конечно они содержат спецсимволы, но смысл совершенно другой
пример самого простого XSS инджекта, в поле имя вводим:
Если ввелось, то ищем на каких веб-интерфейсах потом оно будет отображаться, может у пользователей, может у оператора. Если энкодинга не было и скрипт отрабатывает, окошко 123 показывается, то хакер может взломать или пользователей системы либо самого оператора
и конечно в скрипте не будет безобидное окошко 123 ;)
вот студенты будут думать "узко" и прошляпят даже очевидные уязвимости
О, это, кстати, классная мысль, спасибо!
Заданий даже на простейшие уязвимости у меня нет, добавила себе в TODO.
Абсолютно согласна с вами, хотя бы очевидное надо уметь искать :)
Может, и ссылки какие порекомендуете? Добавлю в доп материалы
Как раз собираюсь написать разарботчику про баги в Багги (как бы смешно это не звучало, да), надо еще на XSS проверить, если он умный и режет такое. надо разрешить ввод, пусть будет где баловаться
#8 Spock- ФИО: Роман
про имена неплохой гайд, рекомендуют только поле "Full name", так как не у всех есть все части имя-фамилия-отчество, у исландцев нет фамилий например
OWASP Zed Attack Proxy (ZAP)
устанавливаем ZAP, запускаем прокси, щупаем сервис, подключаем плагин FuzzDb, и за пару минут посылаем тысячи разных атак в это наше поле "имя", тут и SQL инджекты, и XSS и всё остальное. Свой фаззер тут же создаём, с нужными нам данными, его тоже пускаем
ну и конечно Active Scan на endpoint запускаем тоже
ведь человеку просто не под силу запомнить и послать в поле "всё что нужно".
Плюс "нахаляву" автоматически получим рекомендации по безопасности, какие там Header'ы программеры должны добавить
#9 Molechka- ФИО: Ольга Назина (Киселева)
- Город: Москва
Хотя, безусловно, разные раскладки — интересные кейсы, но в первую очередь у нас используются именно русская и английская :)
И кейс "забыл сменить раскаладку" или "я пишу транслитом и мне на всех по барабану" все же чаще, чем "я пришел на русский сайт и пишу по арабски" =)
ну вот потом начальнику попробуй объясни это :) "ну я же тестировал только основные кейсы про большинство людей"
мы же тестируем без учёта "насколько частый вариант"
например в поле "сумма перевода" мы конечно введём и "0" и "-1", мы ведь не скажем "ну большинство клиентов ведь будут позитивные суммы вводить"
И согласна, и нет :)
Про "попробуй начальнику объясни" — я ж не говорю, что менее приоритетное вообще тестировать не надо. Надо) Наверное — зависит от фирмы.
Условия же везде разные, где-то надо до каждого пикселя докапываться, а где-то неработающий пункт меню "не баг, зачем вообще завел?"
Ведь задача тестировщика — предоставлять информацию. Если начальству важна информация "а если все раскладки мира перепробовать?", то, конечно, это стоит проверять.
Опять же, зависит от того, сколько народа посещает сайт.
Вот хоть обставьтесь багов на то, что http://bugred.ru/ не анализирует заведомый треш типа "123456" или арабские символы. Ну и что? )) Он не для этого нужен.
Хотя, если один человек введет арабские символы и у всех начнет падать — вот тут придется исправлять.
А насчет "сумма перевода":
а) Ноль и отрицательное как раз часто проверяют, на числовых полях ступора «что тестить?» меньше.
б) Это важно проверить, потому что пользователь может ввести данные случайно. Но опечататься и ввесли иероглиф все-таки разные вещи)))
Я могу случайно вкопипастить диалог в скайпе, потому что не сработал Ctrl + C. Вот мне надо посмотреть отчет с даты из другого отчета. Я ее тык, скопипастила. А оно не скопипастилось)))) И я в поле с датой вставила текст от прошлого копирования. Я не пытаюсь сломать систему нарочно, но такое бывает. Потому, наверное, и проверяем негатив. Как пишет Джоэл Спольски, когда у тебя пользователей миллионы, тебе могут ввести даже то, что ты никогда не предполагал)))
В общем, я согласна с тем, что всякие редкие тесты вполне могут быть полезными и нужными. НО! В первую очередь надо тестировать наше поле, а не абстрактную строку =)
#10 Spock- ФИО: Роман
ну Юникод и разные ö и ß , иероглифы, длинные строки, пробелы в начале и пробелы в конце надо проверить без разницы "просило тебя начальство это сделать или не просило", так же тут и непечатные символы типа возврата каретки, таб, новая строка, плюс тесты на максимальную длину строки
начальство вообще часто просит "протестировать поле Имя", и не просит что там конкретно надо протестировать а что нет. Это тестировщик должен знать что надо тестировать
#11 Molechka- ФИО: Ольга Назина (Киселева)
- Город: Москва
OWASP Zed Attack Proxy (ZAP)
https://www.owasp.or. k_Proxy_Project
устанавливаем ZAP, запускаем прокси, щупаем сервис, подключаем плагин FuzzDb, и за пару минут посылаем тысячи разных атак в это наше поле "имя", тут и SQL инджекты, и XSS и всё остальное. Свой фаззер тут же создаём, с нужными нам данными, его тоже пускаем
ну и конечно Active Scan на endpoint запускаем тоже
ведь человеку просто не под силу запомнить и послать в поле "всё что нужно".
Плюс "нахаляву" автоматически получим рекомендации по безопасности, какие там Header'ы программеры должны добавить
Мне кажется, это уже все-таки в тему тестирования безопасности :-)
Один курс, который покрывает "все-все-все", это, конечно, круто, но толку от него маловато )))
Безопасность — отдельная глубокая тема. Тут или учить капитально, с "скачиваем фаззер, делаем свой", или не затрагивать тему, чтобы не создавать ложные ожидания. Тоже хороший вопрос, кстати, нужно ли об этом говорить — потому что если будет тема / ДЗ про безопасность, то будут и ожидания, что тебя щас тут всему и сразу научат, а на деле только пара простеньких запросов.
Безопасности я учить не хочу) А вот классы эквивалентности — без низ никуда. даже при простой локализации бага помогают. Поэтому и тема отдельная есть))