Чит-лист регистрации от Алексея Лупана — различия между версиями
Worksale (обсуждение | вклад) м (Worksale переименовал страницу Чит-лист регистрации от Алексея Лупана в [[Смотреть онлайн в отличном качестве фильмы и сериалы российского…) |
|||
(не показана одна промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | ==Регистрация нового пользователя== | |
+ | * Зарегистрировать нового пользователя с логином new_user. Expected: можно. | ||
+ | * Зарегистрировать нового пользователя с логином new_user_test. Expected: можно. | ||
+ | * Зарегистрировать нового пользователя с логином new-user. Expected: можно. | ||
+ | * Зарегистрировать нового пользователя с логином new1234user. Expected: можно. | ||
+ | * Зарегистрировать нового пользователя с логином new@user. Expected: alert. | ||
+ | * Зарегистрировать нового пользователя с логином newuser и паролем newuser (полное совпадение). Expected: alert. | ||
+ | * использование только ASCII символов в логине – Expected: alert. | ||
+ | * регистрация пользователя с логином, содержащим пробелы или состоящим из одних пробелом – Expected: alert. | ||
+ | * регистрация пользователя с паролем, содержащим пробелы или состоящим из одних пробелом – Expected: alert. | ||
+ | * регистрация пользователя с логином содержащим XSS или SQL injections. – Expected: alert. | ||
+ | * а можно ли зарегистрировать пользователя “admin”, и пользователя “аdmin” (где а – из русской расскладки)? | ||
+ | * В некоторых случаях разработчики проверяют пользователя в базе с помощью LIKE, и не обрабатывают user input. Поэтому нужно проверить комбинацию %%%/%%% (знак % повторяется 3 раза, чтобы обойти валидацию на минимальную длину). | ||
+ | ==Логин под существуюшим пользователем – смена пароля:== | ||
+ | * Создать аккаунт с максимально возможным числом символом в логине | ||
+ | - Попробовать залогиниться<br> | ||
+ | - Попробовать сменить пароль<br> | ||
+ | Причина: возможно несовпадение максимумов между строками ввода нового пароля, ввода пароля, смены пароля, и в БД. <br> | ||
+ | - Дополнительно: проделать те же шаги, но с количеством символов макс+1<br> | ||
+ | - Дополнительно: проделать те же шаги, но <br> | ||
+ | с макс. количеством разрешенных символов + пробел (и другие безобидные);<br> | ||
+ | с макс. количеством разрешенных символов + 1 запрещенный.<br> | ||
+ | * Создать аккаунт с максимально возможным числом символом в пароле | ||
+ | - Попробовать залогиниться<br> | ||
+ | - Попробовать сменить пароль (а может – и сам логин?)<br> | ||
+ | Причина та же: возможно несовпадение максимумов между строками ввода нового пароля, ввода пароля, смены пароля, и в БД. | ||
+ | |||
+ | ==Ввод некорректных данных== | ||
+ | * Ввeсти корректный логин и корректный пароль. Expected: успешно залогинен. Разлогиниться. Почистить кэш и куки (открыть/закрыть браузер?). | ||
+ | * Оставить оба поля пустыми. Нажать на Login. Expected: alert. | ||
+ | * Оставить пустое поле login. Нажать на Login. Expected: alert. | ||
+ | * Оставить пустое поле password. Нажать на Login. Expected: alert. | ||
+ | * Ввeсти корректный логин и некорректный пароль. Expected: alert. | ||
+ | * Ввeсти некорректный логин, но корректный пароль. Expected: alert. | ||
+ | * Ввeсти некорректный логин и некорректный пароль. Expected: alert. | ||
+ | * В поле логина ввeсти корректный пароль, а в поле пароля ввести корректный логин. Expected: alert. | ||
+ | * Ввeсти логин <script>alert(123)</script> и корректный пароль. Expected: alert. | ||
+ | * Ввeсти в поле логина SQL запрос (‘ or ‘a’ = ‘a’; DROP TABLE user; SELECT * FROM blog WHERE code LIKE ‘a%’;) — структура запроса зависит от DB. | ||
+ | * Ввeсти в поле логина скрипт (<script>alert(“Hello, world!”)</alert>, <script>document.getElementByID(“…”).disabled=true</script>) | ||
+ | * Ввeсти в поле логина html-теги (<form action=”http://live.hh.ru”><input type=”submit”></form>) | ||
+ | * Ввeсти в поле логина сложную последовательность символов вроде “♣☺♂” , “”‘~!@#$%^&*()?>,./\<][ /*<!–”", “${code}”;–> | ||
+ | * Ввeсти в поле логина текст состоящий из одних пробелов; | ||
+ | * Ввeсти в поле логина правильный логин, начинающийся с нескольких пробелов, и правильный пароль. Expected: alert. | ||
+ | * Ввeсти в поле логина правильный логин, после которого следуют нескольких пробелов, и правильный пароль. Expected: alert. | ||
+ | * Ввeсти корректный логин и корректный пароль. Нажать на кнопку “Назад” в браузере. Expected: непонятно – или The page should be expired, или увидеть те же поля. Если второе – ввести в поля снова логин и пароль. Перейти. Залогинен? | ||
+ | * Ввeсти корректный логин. Указать пароль с использованием букв РАЗНОГО регистра. | ||
+ | * Ввeсти логин с использованием букв РАЗНОГО регистра. Указать корректный пароль. | ||
+ | * Зарегистрировать пользователя с логином VasEA. Expected: можно. Попытаться залогиниться, используя в логине буквы только одного регистра (vasea). Expected: можно. | ||
+ | * Зарегистрировать пользователя с логином petea/iZMaIL. Expected: можно. Попытаться залогиниться, используя в пароле буквы только одного регистра (petea/izmail). Expected: alert. Алерт должен указать на причину? | ||
+ | * Проверить ограничение на длину логина и пароля при регистрации? Ввести qqweqweqweqweqweqweqweqweqweqweqweqweqweqwe / qqweqweqweqweqweqweqweqweqweqweqweqweqweqwe | ||
+ | * Ввести логин/пароль Aa!@#$%^&*()-_+=`~/\,.?><|b / PaSSword!@#$%^&*()-_+=`~/\,.?><| Есть ли ограничения на допустимые символы? | ||
+ | * Ввести логин/пароль Иван/Болван Возможно ли создание имени/пароль с например кириллицей, если да – то как потом эта форма отрабатывает? | ||
+ | * Ввeсти логин ksjdksbdshdoueywfgjwevflwjeyfvowyecsydcvsldc (несуществующий в базе), оставить поле пароля пустым. Expected: such user doesn’t exist. | ||
+ | * Открыть первый бразуер. Залогиниться валидным юзером. Открыть второй браузер. Залогиниться тем же самым валидным юзером. Expected: можно. Разлогиниться в первом браузере. Expected: можно. Перейти во второй браузер. Сделать что-нибудь, что может сделать только залогиненный юзер. Expected: можно. | ||
+ | * Открыть браузер. Ввести в поля валидные данные. Нажать на кнопку Login. Отключить интернет. Получить “страница недоступна”. Подключить интернет обратно. Зайти на сайт. Expected: не залогинен. | ||
+ | * Блокируется ли акаунт/IP того, кто введет n-количество раз не правильный пароль? | ||
+ | * Установить фокус на поле логина. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на поле пароля. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на галочку “remember me”. Нажать кнопку Space на клавиатуре. Expected: появилась галочка. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на кнопку Login. Нажать кнопку Enter на клавиатуре. Expected: процесс пошёл. | ||
+ | * User should be a registered user with his/her account expired. Clicks on the Login button. | ||
+ | * A message should appear stating ‘Your account has been expired’. | ||
+ | * Проверка на ‘Remember me on this computer’. Заполнить поля валидными данными. Чекнуть галочку Remember me. Залогиниться. Закрыть браузер. Открыть бразуер. Открыть страницу сайта. Expected: логин для входа не требуется. | ||
+ | * Ввести логин существующего пользователя, обрамив его уголками: <userlogin>. Причина: иногда валидатор вырезает запрещенные символы и проверяет остаток, однако после прохождения проверки передает дальше оригинальную строку. | ||
+ | ==Смена/удаление логинов== | ||
+ | * В базе или настройках сайта указать, что срок годности определенного логина истек. Залогиниться под этим логином. Expected: Alert. | ||
+ | * Залогиниться под корректными логином/паролем. Сменить пароль. Залогиниться под новым паролем. Expected: пароль сменен, можно зайти. | ||
+ | * Смена пароля и заход под старым | ||
+ | - запомнить пароль<br> | ||
+ | - войти в систему<br> | ||
+ | - поменять пароль<br> | ||
+ | - разлогиниться<br> | ||
+ | - залогиниться обратно со старым паролем. <br>Expected: не пускает.<br> | ||
+ | * Залогиниться под корректными логином/паролем. Переименовать аккаунт. Перегрузить браузер. Залогиниться под старыми логином/паролем. Expected: не пускает. Залогиниться под новым логином/паролем. Expected: пускает. | ||
+ | * Залогиниться под корректными логином/паролем. Удалить аккаунт. Перегрузить браузер. Залогиниться под старыми логином/паролем. Expected: не пускает. | ||
+ | |||
+ | ==Особые случаи== | ||
+ | * Ввeсти корректный логин и корректный пароль. Скопировать полученный url и вставить его в другой браузер. Expected: It should not display the user’s welcome page. | ||
+ | * Подумать об обработке операции “вставить”, т.е. рассмотреть различные способы ввода данных. | ||
+ | * Как формируется запрос к серверу с данной формы (get/post)? Как передается пароль – в виде хэша или плэйн-текстом в теле ПОСТа? | ||
+ | * Если данные передаются в адресной строке браузера в виде «login=bla-bla&password=bla-bla» | ||
+ | - применить все варианты некорректных данных, включая запрещенные символы, и пограничные значения; | ||
+ | - передать еше какой-нибудь параметр из существующих, напр. «login=bla-bla&password=bla-bla&state=update» | ||
+ | |||
+ | [[Категория:Читерство]] |
Текущая версия на 20:25, 26 марта 2021
Содержание
Регистрация нового пользователя
- Зарегистрировать нового пользователя с логином new_user. Expected: можно.
- Зарегистрировать нового пользователя с логином new_user_test. Expected: можно.
- Зарегистрировать нового пользователя с логином new-user. Expected: можно.
- Зарегистрировать нового пользователя с логином new1234user. Expected: можно.
- Зарегистрировать нового пользователя с логином new@user. Expected: alert.
- Зарегистрировать нового пользователя с логином newuser и паролем newuser (полное совпадение). Expected: alert.
- использование только ASCII символов в логине – Expected: alert.
- регистрация пользователя с логином, содержащим пробелы или состоящим из одних пробелом – Expected: alert.
- регистрация пользователя с паролем, содержащим пробелы или состоящим из одних пробелом – Expected: alert.
- регистрация пользователя с логином содержащим XSS или SQL injections. – Expected: alert.
- а можно ли зарегистрировать пользователя “admin”, и пользователя “аdmin” (где а – из русской расскладки)?
- В некоторых случаях разработчики проверяют пользователя в базе с помощью LIKE, и не обрабатывают user input. Поэтому нужно проверить комбинацию %%%/%%% (знак % повторяется 3 раза, чтобы обойти валидацию на минимальную длину).
Логин под существуюшим пользователем – смена пароля:
- Создать аккаунт с максимально возможным числом символом в логине
- Попробовать залогиниться
- Попробовать сменить пароль
Причина: возможно несовпадение максимумов между строками ввода нового пароля, ввода пароля, смены пароля, и в БД.
- Дополнительно: проделать те же шаги, но с количеством символов макс+1
- Дополнительно: проделать те же шаги, но
с макс. количеством разрешенных символов + пробел (и другие безобидные);
с макс. количеством разрешенных символов + 1 запрещенный.
- Создать аккаунт с максимально возможным числом символом в пароле
- Попробовать залогиниться
- Попробовать сменить пароль (а может – и сам логин?)
Причина та же: возможно несовпадение максимумов между строками ввода нового пароля, ввода пароля, смены пароля, и в БД.
Ввод некорректных данных
- Ввeсти корректный логин и корректный пароль. Expected: успешно залогинен. Разлогиниться. Почистить кэш и куки (открыть/закрыть браузер?).
- Оставить оба поля пустыми. Нажать на Login. Expected: alert.
- Оставить пустое поле login. Нажать на Login. Expected: alert.
- Оставить пустое поле password. Нажать на Login. Expected: alert.
- Ввeсти корректный логин и некорректный пароль. Expected: alert.
- Ввeсти некорректный логин, но корректный пароль. Expected: alert.
- Ввeсти некорректный логин и некорректный пароль. Expected: alert.
- В поле логина ввeсти корректный пароль, а в поле пароля ввести корректный логин. Expected: alert.
- Ввeсти логин <script>alert(123)</script> и корректный пароль. Expected: alert.
- Ввeсти в поле логина SQL запрос (‘ or ‘a’ = ‘a’; DROP TABLE user; SELECT * FROM blog WHERE code LIKE ‘a%’;) — структура запроса зависит от DB.
- Ввeсти в поле логина скрипт (<script>alert(“Hello, world!”)</alert>, <script>document.getElementByID(“…”).disabled=true</script>)
- Ввeсти в поле логина html-теги (<form action=”http://live.hh.ru”><input type=”submit”></form>)
- Ввeсти в поле логина сложную последовательность символов вроде “♣☺♂” , “”‘~!@#$%^&*()?>,./\<][ /*<!–”", “${code}”;–>
- Ввeсти в поле логина текст состоящий из одних пробелов;
- Ввeсти в поле логина правильный логин, начинающийся с нескольких пробелов, и правильный пароль. Expected: alert.
- Ввeсти в поле логина правильный логин, после которого следуют нескольких пробелов, и правильный пароль. Expected: alert.
- Ввeсти корректный логин и корректный пароль. Нажать на кнопку “Назад” в браузере. Expected: непонятно – или The page should be expired, или увидеть те же поля. Если второе – ввести в поля снова логин и пароль. Перейти. Залогинен?
- Ввeсти корректный логин. Указать пароль с использованием букв РАЗНОГО регистра.
- Ввeсти логин с использованием букв РАЗНОГО регистра. Указать корректный пароль.
- Зарегистрировать пользователя с логином VasEA. Expected: можно. Попытаться залогиниться, используя в логине буквы только одного регистра (vasea). Expected: можно.
- Зарегистрировать пользователя с логином petea/iZMaIL. Expected: можно. Попытаться залогиниться, используя в пароле буквы только одного регистра (petea/izmail). Expected: alert. Алерт должен указать на причину?
- Проверить ограничение на длину логина и пароля при регистрации? Ввести qqweqweqweqweqweqweqweqweqweqweqweqweqweqwe / qqweqweqweqweqweqweqweqweqweqweqweqweqweqwe
- Ввести логин/пароль Aa!@#$%^&*()-_+=`~/\,.?><|b / PaSSword!@#$%^&*()-_+=`~/\,.?><| Есть ли ограничения на допустимые символы?
- Ввести логин/пароль Иван/Болван Возможно ли создание имени/пароль с например кириллицей, если да – то как потом эта форма отрабатывает?
- Ввeсти логин ksjdksbdshdoueywfgjwevflwjeyfvowyecsydcvsldc (несуществующий в базе), оставить поле пароля пустым. Expected: such user doesn’t exist.
- Открыть первый бразуер. Залогиниться валидным юзером. Открыть второй браузер. Залогиниться тем же самым валидным юзером. Expected: можно. Разлогиниться в первом браузере. Expected: можно. Перейти во второй браузер. Сделать что-нибудь, что может сделать только залогиненный юзер. Expected: можно.
- Открыть браузер. Ввести в поля валидные данные. Нажать на кнопку Login. Отключить интернет. Получить “страница недоступна”. Подключить интернет обратно. Зайти на сайт. Expected: не залогинен.
- Блокируется ли акаунт/IP того, кто введет n-количество раз не правильный пароль?
- Установить фокус на поле логина. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на поле пароля. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на галочку “remember me”. Нажать кнопку Space на клавиатуре. Expected: появилась галочка. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на кнопку Login. Нажать кнопку Enter на клавиатуре. Expected: процесс пошёл.
- User should be a registered user with his/her account expired. Clicks on the Login button.
- A message should appear stating ‘Your account has been expired’.
- Проверка на ‘Remember me on this computer’. Заполнить поля валидными данными. Чекнуть галочку Remember me. Залогиниться. Закрыть браузер. Открыть бразуер. Открыть страницу сайта. Expected: логин для входа не требуется.
- Ввести логин существующего пользователя, обрамив его уголками: <userlogin>. Причина: иногда валидатор вырезает запрещенные символы и проверяет остаток, однако после прохождения проверки передает дальше оригинальную строку.
Смена/удаление логинов
- В базе или настройках сайта указать, что срок годности определенного логина истек. Залогиниться под этим логином. Expected: Alert.
- Залогиниться под корректными логином/паролем. Сменить пароль. Залогиниться под новым паролем. Expected: пароль сменен, можно зайти.
- Смена пароля и заход под старым
- запомнить пароль
- войти в систему
- поменять пароль
- разлогиниться
- залогиниться обратно со старым паролем.
Expected: не пускает.
- Залогиниться под корректными логином/паролем. Переименовать аккаунт. Перегрузить браузер. Залогиниться под старыми логином/паролем. Expected: не пускает. Залогиниться под новым логином/паролем. Expected: пускает.
- Залогиниться под корректными логином/паролем. Удалить аккаунт. Перегрузить браузер. Залогиниться под старыми логином/паролем. Expected: не пускает.
Особые случаи
- Ввeсти корректный логин и корректный пароль. Скопировать полученный url и вставить его в другой браузер. Expected: It should not display the user’s welcome page.
- Подумать об обработке операции “вставить”, т.е. рассмотреть различные способы ввода данных.
- Как формируется запрос к серверу с данной формы (get/post)? Как передается пароль – в виде хэша или плэйн-текстом в теле ПОСТа?
- Если данные передаются в адресной строке браузера в виде «login=bla-bla&password=bla-bla»
- применить все варианты некорректных данных, включая запрещенные символы, и пограничные значения; - передать еше какой-нибудь параметр из существующих, напр. «login=bla-bla&password=bla-bla&state=update»