Все мы знаем, что перехват сессии – это очень плохо, и от него надо защищать себя и свои приложения. Однако удобопонятную информацию о том, что это такое и как это тестировать, найти трудно. В этой статье я опишу различные виды перехвата сессий, а затем дам пошаговую инструкцию, как тестировать на эту уязвимость, используя OWASP Juice Shop и Burp Suite.
Перехват сессий – это ситуация, когда злоумышленник получает доступ к авторизационной информации и использует ее, чтобы представиться другим пользователем или получить доступ к информации, которого быть не должно. Перехват бывает разных видов:
Мы — команда профессионалов, которые ежедневно решают уникальные задачи. Если ты мечтаешь стать частью дружного, прогрессивного коллектива, вести насыщенную профессиональную жизнь и развивать сервис будущего, присоединяйся к нам!
Сделали переход на Selenium 3.9.0 + GeckoDriver 0.19 + FireFox 58.0.2.
Теперь половина тестов не работает, и везде возникает ошибка: selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a id="tree54" class="tree54" href="javascript:void(0);"> is not clickable at point (151,823) because another element <div class="sidebarBottomElement"> obscures it
Айдишники и классы разные, в зависимости от точки клика.
Как это победить?
Написан отдельный метод на клик:
Язык тестов - Python
def click(driver, locator, sleep_time=5, expl_wait=40): """ Wait until element will be shown and clickable, then send 'click' to it. TimeoutException will be generated if something's wrong (NOT NoSuchElementException).
:type driver: WebDriver :type locator: tuple :param sleep_time: delay before click :param expl_wait: explicit waiting time for presence of element will found :type sleep_time: float :type expl_wait: float """
time.sleep(sleep_time)
WebDriverWait(driver, expl_wait, ignored_exceptions=StaleElementReferenceException).until(
ec.presence_of_element_located(locator)) # additional check were deleted, cause of some unexpected timeout exceptions on it
WebDriverWait(driver, 40).until(ec.element_to_be_clickable(locator))
driver.find_element(*locator).click()
wait_for_loading(driver)
К слову, на селениуме 2,53 и мозиле 45 все работало как часы.
Что нужно добавить\поменять, чтобы тесты бегали на ура? При просмотре через консоль, этот элементы куда надо кликнуть никем не перекрывается!
Так получилось, что я занимаюсь автоматизацией тестирования в нашей компании. Тесты прогоняются на 4 основных браузерах: Chrome, Firefox, Edge, Safari, в качестве инструмента. Я использую связку Selenium+Pytest.
И вот при подготовке одного из тестов я обнаружил, что он всегда падает в Safari, когда во всех остальных браузерах проходит успешно. Начал разбираться, оказалось, что причина - то, что не может быть совершен клик по кнопке, которая скрывает/раскрывает спойлер. Сначала подумал, что дело в загрузке, и добавил WebDriverWait. Ожидание отрабатывает, т.е. драйвер видит, что элемент появился, но действие с ней выполнить не может - выбрасывает эксцепшон:
Похожая ерунда была с другим тестом в Эдж: там есть список подкатегорий, нужно навести на любую, чтобы появилось дополнительное меню. При прогоне теста, первый элемент работает как надо, а последующие становятся неактивными. И это только в тестах, в реальности все работает.
И отсюда у меня возникает вопрос: с чем связано такое поведение? Есть ли воркараунд, если кто сталкивался?
Привет всем, хотелось бы набраться где-то хоть немного опыта, чтобы можно было потом сослаться на него в резюме/на собеседовании...
Смотрю в сторону фриланса, бирж для тестировщиков, но все это пока для меня темный лес... поделитесь пожалуйста сайтами/какие лучше, на которых реально можно получить какую-нибудь подработку, и как вообще действовать там - а то ни опыта ничего нет, заказчики же тоже наверно там не захотят связываться с новичком? Заренее благодарю