• Подробное руководство по HTML-инъекциям

    • Перевод


    HTML считается каркасом для каждого веб-приложения, определяющим его структуру. Но порой даже самую продуманную экосистему можно испортить парочкой простых скриптов.


    Сегодня мы узнаем, как злоумышленники могут получить доступ к веб-приложению с помощью ошибок в его HTML коде.


    Содержание:


    • Что такое HTML?
    • Что такое HTML-инъекция?
    • Угрозы HTML-инъекции
    • HTML-инъекция и XSS
    • Типы инъекций
      • Сохраненный HTML
      • Отраженный HTML
        • GET
        • POST
        • Текущий URL
    • Защита от HTML-инъекции

    Что такое HTML?


    HTML (HyperText Markup Langauge) — это основной строительный блок сети, который определяет формирование веб-страниц в веб-приложении. HTML используется для разработки веб-сайтов, состоящих из «гипертекста», чтобы включить «текст внутри текста» в качестве гиперссылки и комбинации элементов, которые визуально отображаются в браузере.


    Что такое элемент?


    Элемент — это основная структурная единица веб-страницы. Он содержит открывающий и закрывающий теги с текстовым содержимым между ними».


    Читать дальше →
  • Мобильные приложения и их тестировщики: all you need to know

      imageПривет тебе, хабр! Меня зовут Максим и я работаю в отделе QA компании Trinity Digital. В сфере обеспечения качества я уже более двух лет, люблю мобильные приложения, их сложность и динамичность. В этой статье я попытался сделать относительно небольшой список инструментов, источников информации и скилов, которые тестировщик мобильных приложений всегда должен иметь при себе в нашем 2к17 году.

      Если разбить статью на части, то она будет выглядеть так:

      • Источники информации для максимально успешного тестирования
      • Инструменты для упрощения жизни тестировщика
      • Hint’ы
      • Доставка и анализ приложений
      • Куда расти дальше, если постигли дзен
      Читать дальше →
      • +6
      • 23,1k
      • 5
    • 5 приемов и хитростей для работы с SSH и кое-что ещё

      • Перевод
      image

      В этой статье мы поговорим о полезных приемах и командах при работе с SSH. А именно:

      • Как использовать двухфакторную аутентификацию для SSH-подключений.
      • Безопасное использование «проброса ключа» (agent forwarding).
      • Завершение зависшей сессии.
      • Оставляем терминал открытым при выходе или разрыве связи.
      • Расшариваем удаленный терминал с другом (без Zoom!).
      Читать дальше →
      • +20
      • 14,4k
      • 7
    • Семь паттернов пайплайнов непрерывной поставки

      • Перевод

      В настоящее время гибкость бизнеса часто основана на гибкости кода. Возможность быстрых и безопасных релизов по требованию для современных цифровых продуктов и услуг является реальным конкурентным преимуществом.

      С 2004 года мы разрабатываем, собираем и развертываем пайплайны кода для автоматизации приложений и инфраструктур. В этой статье мы делимся семью паттернами, которые улучшают скорость, гибкость и качество, при одновременном повышении автономности, прозрачности и удобства обслуживания.

      Читать далее
    • Тестирование игр

        Для обычного игрока и пользователя любая игра - это конечный продукт. Однако путь, проделанный от идеи до конечной реализации и релиза, зачастую тернист и имеет массу неточностей и “костылей” под капотом.

        Для команды разработки игры сам процесс ее создания - это постоянный процесс решения сложных задач, причем решения зачастую неочевидны для менеджера этой команды или для QA. Поэтому задача QA на этапе погружения в проект - это умение задавать вопросы и документировать сложные решения во время процесса разработки, чтобы в будущем сформировать грамотный план тестирования. В этой статье мы рассмотрим в качестве примера мобильные игры и их специфику.

        Читать далее
      • Устройство современного веб-браузера Chrome (часть 1/4)

        Оригинальное название публикации: "Inside look at modern web browser".


        В этой серии, состоящей из 4 частей, мы рассмотрим внутренности браузера Chrome от архитектуры высокого уровня до особенностей пайплайна рендеринга. Если вы когда-нибудь задумывались над тем, как браузер превращает ваш код в функциональный сайт, или не знаете, почему для повышения производительности предлагается та или иная методика, то эта серия статей для вас.


        Читать дальше →
      • Устройство современного веб-браузера Chrome (часть 2/4)

        • Перевод

        Это 2-я часть из 4-х, в которой рассматривается внутренняя работа Chrome. В предыдущей части мы рассмотрели, как различные процессы и потоки работают с разными частями браузера. В этом посте мы подробнее рассмотрим, как каждый процесс и поток взаимодействуют, чтобы отобразить веб-сайт.


        Читать дальше →
        • +11
        • 5,8k
        • 5
      • Устройство современного веб-браузера Chrome (часть 3/4)

        • Перевод

        Это третья часть из 4-х, посвященных работе браузеров. Ранее мы рассматривали многопроцессорную архитектуру и навигацию. В этом посте мы рассмотрим, что происходит внутри *рендер-процесса (renderer process).


        Читать дальше →
        • +10
        • 3,2k
        • 1
      • Устройство современного веб-браузера Chrome (часть 4/4)

        • Перевод

        Это последний пост из серии 4-х постов, посвященной заглядыванию внутрь Chrome, и исследующей, как он обрабатывает наш код для отображения веб-сайта. В предыдущем посте мы рассмотрели *рендер-процесс (renderer process) и узнали о *композ-потоке (compositor thread). В этом посте мы рассмотрим, как *композ-поток обеспечивает плавное взаимодействие при вводе данных пользователем.


        Читать дальше →
      • Ускоряем и стабилизируем автотесты на codeception + selenium

          Как прогнать несколько часов автотестов за 5 минут и при этом, чтобы это было стабильно и не вызывало головной боли при каждой сборке? Без лишней воды и вступлений предоставляю вашему внимаю сборник костылей и подпорок элегантных архитектурных решений, без которых невозможно добиться высокой скорости и стабильности автотестов.
          Читать дальше →
        • Кунг-фу стиля Linux: упрощение работы с awk

          • Перевод
          Утилита awk — это нечто вроде швейцарского ножа для обработки текстовых файлов. Но некоторые ограничения awk порой доставляют неудобства тем, кто этой утилитой пользуется. Я, для того чтобы упростить работу с awk, создал несколько функций. Но сразу хочу сказать о том, что для работы этих функций нужны возможности GNU-версии awk. Поэтому для того чтобы воспроизвести то, о чём я буду рассказывать, вам совершенно необходимо использовать gawk и ничего другого. Возможно, в вашей системе настроено сопоставление /usr/bin/awk с чем-то, и это «что-то» может представлять собой gawk. Но это может быть и mawk, и какая-то другая разновидность awk. Если вы используете дистрибутив Linux, основанный на Debian, то знайте, что команда update-alternatives — это ваш хороший друг. В данном материале я буду исходить из предположения о том, что его читатель использует gawk.



          После того, как вы прочитаете эту статью, вы узнаете о том, как пользоваться моей библиотекой дополнительных функций для awk. А именно, речь идёт о разделении строки на поля даже в условиях, когда не существует единого символа, используемого для разделения полей. Кроме того, вы сможете обращаться к полям, используя выбранные вами имена. Например, вам не придётся помнить о том, что $2 — это поле, содержащее сведения о времени. Вместо этого можно будет просто воспользоваться конструкцией наподобие Fields_fields[«time»].
          Читать дальше →
          • +32
          • 6,7k
          • 3
        • API для QA: тестируем фичи без доступа к коду

            Многие фичи приложения невозможно быстро протестировать, не меняя исходный код. Представьте типичную задачу, с которой может столкнуться каждый разработчик: через три дня после регистрации пользователю нужно предложить купить премиум-доступ к продукту со скидкой. Чтобы проверить, работает ли это промо, нужно зарегистрировать тестового пользователя и подождать три дня до появления заветного окошка.  

            Очевидно, что разработчик не будет столько ждать. Он просто сменит в коде значение константы, которая задаёт временной интервал, с трёх дней на 20 секунд — и получит результат почти мгновенно.  

            Допустим, данные для промопредложения отдаёт сервер, а отрисовывается оно на клиенте. Если серверный тестировщик работает в среде, которая допускает манипуляции с кодом, он тоже быстро справится с задачей. Но как только она окажется там, где возможность менять код отсутствует (стейджинг, продакшен), возникнет проблема.

            Читать далее
            • +25
            • 6,4k
            • 6
          • 10 советов как повысить продуктивность, используя инструменты разработчика Chrome

            • Перевод

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

            Читать далее
          • Git Rebase: руководство по использованию

            • Tutorial
            Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

            Теория


            Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


            Читать дальше →
          • Mod и остаток — не одно и то же

            • Перевод


            Приготовьтесь, вас ждёт крайне педантичная статья, которая вполне может спасти вас на собеседовании или сэкономить несколько часов при вылавливании бага в продакшне!

            Я сейчас активно работаю над вторым сезоном «Руководства для самозванца» и пишу о шифре RSA для SSH, который, очевидно, является самым загружаемым фрагментом кода в истории IT.

            Хочется полностью разобраться в этой истории. Кто придумал этот шифр, как он работает, почему работает и будет ли работать в будущем. Сейчас я раскопал одну чертовски интересную историю. Я не криптоманьяк и вижу, как других буквально засасывает в эту область. Но мне это тоже интересно, потому что повсюду есть маленькие норки, а меня как сороку привлекают блестящие штучки в глубоких норках. Я также очень хорош в метафорах.
            Читать дальше →
          • Создаем пентест-лабораторию для WordPress

            • Перевод


            В данной статье мы рассмотрим процесс создания собственной пентест-лаборатории для WordPress на:


            • Ubuntu 20.04
            • Docker
            • Windows с использованием XAMPP

            Непосредственно тесты на проникновения можно делать с помощью WPScan, о котором мы уже писали.


            WordPress в Ubuntu 20.04


            Для работы WordPress необходимы:


            • Apache
            • База данных (MySQL / Mariadb)
            • PHP

            Apache


            Запустим службу HTTP с помощью Apache, используя учетную запись с root-правами. Для этого выполним следующую команду в терминале:


            apt install apache2
            Читать дальше →
            • –8
            • 1,5k
            • 3
          • Учим железки разговаривать, или ESP32 DAC и немного таймера

            • Tutorial
            В ходе разработки одного очень интересного устройства (эх, лишь бы силенок хватило) я решил, что будет неплохо, если устройство это будет говорящим. Как нельзя кстати здесь пригодилось наличие в целевом микроконтроллере, ESP32 компании Espressif Systems, двухканального 8-битного ЦАПа.

            В этом туториале (если его можно так назвать) я покажу, как можно быстро и довольно просто организовать проигрывание аудиофайла силами микроконтроллера ESP32.
            Читать дальше →
            • +19
            • 5,4k
            • 8
          • Механико-цифровые часы из стальных шариков

            • Перевод
            Перевод с сайта про самоделки instructables.com


            Как работают часы

            Решил я, наконец, разобраться с Arduino, в результате чего сделал свой первый проект: полностью механические цифровые часы.


            Читать дальше →
          • Как приручить Charles Proxy?

              Привет! Многие из тех, кто приходит к нам на собеседование на должность тестировщика, с гордостью заверяют, что они могут пользоваться Charles Proxy. Но когда погружаешься в техническую часть, то становится очевидно, что кандидат только слышал об этом инструменте. Давайте уже наконец скорее приручим эту вазу!


              Читать дальше →
            • Протокол MQTT: концептуальное погружение

              • Перевод
              Протокол Message Queuing Telemetry Transport (MQTT) используется в течение многих лет, но сейчас он особенно актуален благодаря взрывному росту IoT: и потребительские, и промышленные устройства внедряют распределённые сети и граничные вычисления (edge computing), а устройства с постоянной трансляцией данных становятся частью повседневной жизни.

              Это означает, что лёгкие, открытые и доступные протоколы со временем станут ещё важнее. В этой статье приводится концептуальное погружение в MQTT: как он работает, как используется сейчас и как будет использоваться в будущем.
              Читать дальше →
              • +21
              • 55,8k
              • 8