• Исчерпывающий путеводитель по тегу iframe

    • Translation
    • Tutorial
    iframe tag

    Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer.


    Хотя все современные браузеры поддерживают данный тег, многие разработчики пишут бесконечные статьи, не советуя им пользоваться. Я считаю, что плохая репутация, которая сформировалась, около данного тега не должна мешать вам использовать его. У данного тега есть много хороших примеров применения. Кроме того, iframe не так сложно защитить, поэтому вам не придется беспокоиться о заражении компьютера вашего пользователя.


    Чтобы помочь вам сформировать собственное мнение и отточить свои навыки разработчика, мы расскажем обо всем, что вам нужно знать об этом противоречивом теге.


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


    Читать дальше →
    • +27
    • 34.5k
    • 9
  • Как действуют хакеры, воруя ключи и пароли?

    • Translation
    Я занимаюсь поиском уязвимостей в различных системах безопасности. В определённый момент мне стало понятно, что мои клиенты недостаточно хорошо знакомы (если вообще знакомы) с базовыми приёмами «хакинга». Ключи к API, пароли, SSH-ключи, сертификаты — всё это отличные механизмы защиты. Но это так до тех пор, пока их держат в секрете. После того, как подобные данные оказываются доступными тем, у кого доступа к ним быть не должно, оказывается, что сложность паролей и продвинутость алгоритмов хеширования уже значения не имеют. В этом материале я хочу рассказать о концепциях, методах и инструментах, применяемых исследователями систем безопасности для нахождения секретных данных. Такие данные используются для взлома систем. Я, кроме того, расскажу тут о простых последовательностях действий, которые помогут снизить риск успешной хакерской атаки.



    Важно отметить то, что «игра» в нападение и защиту, в которую играют хакеры и владельцы компьютерных систем, это — нечестная игра. Атакующему достаточно, чтобы проникнуть в систему, выиграть лишь раз. А тому, кто защищается, выиграть можно лишь всегда побеждая. Главная сложность тут — знать о том, на что надо обращать внимание. Но после того, как защитник будет знать о том, через какие именно виртуальные «двери» в его систему может проникнуть хакер, эти «двери» можно защитить с помощью достаточно простых механизмов. Я полагаю, что простота этих механизмов иногда принижает их важность и является причиной того, что многие защитники компьютерных систем упускают эти механизмы из виду.

    Вот основные правила защиты систем, которые я собираюсь раскрыть в этом материале. Они просты, но это не значит, что о них можно безнаказанно забыть:
    Читать дальше →
    • +35
    • 20.8k
    • 9
  • Про модель, логику, ООП, разработку и остальное

      Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
      Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
      Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
      Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
      Читать дальше →
    • PHP-Дайджест № 163 (12 – 26 августа 2019)


        Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 4, о судьбе P++, видео, подкасты, анонсы митапов и конференций, порция полезных инструментов, и многое другое.

        Приятного чтения!


        Читать дальше →
      • Продвинутая работа с JSON в MySQL

        • Translation

        У MySQL нет возможности напрямую индексировать документы JSON, но есть альтернатива: генерируемые столбцы.


        С момента введения поддержки типа данных JSON в MySQL 5.7.8 не хватает одной вещи: способности индексировать значения JSON. Для того, чтобы обойти это ограничение, можно использовать генерируемые столбцы. Эта возможность, представленная в MySQL 5.7.5, позволяет разработчикам создавать столбцы, содержащие информацию, полученную из других столбцов, предопределенных выражений или вычислений. Генерируя столбец из значений JSON, а затем индексируя его, можно практически индексировать поле с JSON.

        Читать дальше →
      • Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик

        • Translation


        Как же все-таки работает HTTPS? Это вопрос, над которым я бился несколько дней в своем рабочем проекте.

        Будучи Web-разработчиком, я понимал, что использование HTTPS для защиты пользовательских данных – это очень и очень хорошая идея, но у меня никогда не было кристального понимания, как HTTPS на самом деле устроен.

        Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
        Читать дальше →
      • Курс MIT «Безопасность компьютерных систем». Лекция 13: «Сетевые протоколы», часть 3

        • Translation
        • Tutorial

        Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


        Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

        Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
        Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
        Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
        Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
        Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
        Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
        Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
        Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
        Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
        Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
        Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
        Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
        Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
        Читать дальше →
      • «Спасти» старый софт — три проекта, которые делают это

          Еще в 2014 году Microsoft передала код MS-DOS 1.25 и 2.0 Музею компьютерной истории, а в начале октября этого года этот код был загружен на GitHub. Но не только Microsoft занимается сохранением исторического программного наследия. Есть несколько глобальных проектов, цель которых — сохранить старый софт. О них мы и расскажем в сегодняшнем материале.

          Читать дальше →
        • Сервис-ориентированная архитектура (SOA)

          • Translation


          Сервис-ориентированная архитектура (service-oriented architecture, SOA) придумана в конце 1980-х. Она берёт своё начало в идеях, изложенных в CORBA, DCOM, DCE и других документах. О SOA написано много, есть несколько её реализаций. Но, по сути, SOA можно свести к нескольким идеям, причём архитектура не диктует способы их реализации:


          • Сочетаемость приложений, ориентированных на пользователей.
          • Многократное использование бизнес-сервисов.
          • Независимость от набора технологий.
          • Автономность (независимые эволюция, масштабируемость и развёртываемость).

          SOA — это набор архитектурных принципов, не зависящих от технологий и продуктов, совсем как полиморфизм или инкапсуляция.

          Читать дальше →
          • +26
          • 85.6k
          • 2
        • Современный PHP без фреймворков

          • Translation
          • Tutorial


          У меня есть для вас непростое задание. Когда в следующий раз начнёте новый проект, постарайтесь обойтись без PHP-фреймворка. Я не собираюсь перечислять недостатки фреймворков, и это не проявление синдрома неприятия чужой разработки: в этом руководстве мы будем использовать пакеты, написанные разработчиками нескольких фреймворков. Я всецело уважаю инновации в этой сфере.

          Читать дальше →
        • Целостность данных в микросервисной архитектуре — как её обеспечить без распределенных транзакций и жёсткой связности

            Всем привет. Как вы, возможно, знаете, раньше я все больше писал и рассказывал про хранилища, Vertica, хранилища больших данных и прочие аналитические вещи. Сейчас в область моей ответственности упали и все остальные базы, не только аналитические, но и OLTP (PostgreSQL), и NOSQL (MongoDB, Redis, Tarantool).


            Эта ситуация позволила мне взглянуть на организацию, имеющую несколько баз данных, как на организацию, имеющую одну распределенную гетерогенную (разнородную) базу. Единую распределенную гетерогенную базу, состоящую из кучи PostgreSQL, Redis-ов и Монг… И, возможно, из одной-двух баз Vertica.


            Работа этой единой распределенной базы порождает кучу интересных задач. Прежде всего, с точки зрения бизнеса важно, чтобы с данными, движущимися по такой базе, все было нормально. Я специально не использую здесь термин целостность, consistency, т.к. термин это сложный, и в разных нюансах рассмотрения СУБД (ACID и CAP теорема) он имеет разный смысл.


            Ситуация с распределенной базой обостряется, если компания пытается перейти на микросервисную архитектуру. Под катом я рассказываю, как обеспечить целостность данных в микросервисной архитектуре без распределенных транзакций и жесткой связности. (А в самом конце объясняю, почему выбрал для статьи такую иллюстрацию).


            Читать дальше →
          • Классный тимлид ответит за сервис

              Кто такой тимлид в Яндексе? Чем хороший отличается от плохого и стоит ли приглашать на эту должность человека со стороны — в нашем интервью с Алексеем Шаграевым (ashagraev), занимающим одну из руководящих должностей в поисковых службах Яндекса.


              Читать дальше →
              • +45
              • 14.7k
              • 5
            • PHP-Дайджест № 136 (24 июля – 6 августа 2018)


                Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Beta 1, PhpStorm 2018.2, Composer 1.7 и другие релизы, принят стандарт PSR-17, обзор Yii 3.0, альтернативная реализация Fiber API для асинхронных приложений, порция полезных инструментов, и многое другое.

                Приятного чтения!


                Читать дальше →
              • Типичные ошибки, которые разработчик допускает при обучении — и как их избежать

                • Translation

                В эпоху подрывных технологий и засилья фреймворков.

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

                Переведено в Alconost
                Читать дальше →
                • +8
                • 16.9k
                • 6
              • Наиболее востребованные языки программирования – 2018

                  Очередная статистика от hh.ru под катом. Вкратце — очень хотелось посчитать, на каких языках чаще всего пишут отечественные разработчики и какие языки чаще других ищут работодатели. Итого — посчитал, что указывали в вакансиях и в резюме в первом полугодии 2018 и 2017 годов. Получилось что получилось.


                  Читать дальше →
                • Опубликованы звукозаписи 19 000 часов переговоров во время лунной экспедиции «Аполлон-11»


                    Одна из компьютерных распечаток списка треков с 30-канальной плёночной бобины Apollo. Указана информация о каждом из 30 треков

                    Многие слышали звукозапись легендарных слов Нила Армстронга, когда он вышел из лунного модуля Apollo 11 LM Eagle и ступил на дно Моря спокойствия в ходе лунной экспедиции «Аполлон-11»: «Один маленький шаг для человека и огромный скачок для человечества». Он произнёс их 20 июля 1969 года.

                    Но это историческое событие никогда не стало бы возможным, если бы не все остальные участники миссии. Кроме трёх астронавтов, поднявшихся в космос на ракете «Сатурн-5», это ещё десятки инженеров, экспертов, аналитиков и операторов на станциях мониторинга по всему миру, и не только их. Все они поддерживали непрерывную связь на протяжении всей экспедиции: от начала до конца. И теперь у нас впервые появилась возможность услышать эти переговоры.
                    Читать дальше →
                  • Mind map вместо тест-кейса, или Как визуализация позволяет тестировать приложение быстрее


                      Привет! Меня зовут Катя, и я работаю тестировщиком мобильных приложений более пяти лет. Последние три года я тружусь в iOS-команде Badoo, и еженедельно мы релизим от трёх до семи новых фич, от трёх до пяти технических тасков и от пяти до 13 багфиксов. Как вы понимаете, приложение меняется с такой скоростью, что поддерживать классическую тестовую документацию (test cases) неэффективно: почти всегда она будет устаревшей.

                      Опытным путём мы выяснили, что чек-листы в качестве тестовой документации работают лучше, так как их проще создавать и использовать. Тем не менее иногда они могут быть запутанными и слишком подробными, особенно когда есть буквально пара часов на exploratory testing фичи, которая должна попасть в следующий релиз.

                      В этом случае визуализация позволяет сэкономить кучу времени, поэтому мы решили попробовать использовать mind maps (или «ментальные карты»), которые так же удобны в использовании, как чек-листы, но более наглядны за счёт визуального формата.

                      Сегодня мы подробненько разберём созданную мной mind map для тестирования iOS-приложения (далее именуемую «моя прелесть»), а также пройдёмся по ресурсам, которые можно использовать при построении mind map для мобильного приложения, чтобы покрыть максимальное количество важных сценариев.
                      Читать дальше →
                    • 21 совет по эффективному использованию Composer

                      • Translation
                      • Tutorial

                      Хотя большинство PHP-разработчиков умеют пользоваться Composer, не все делают это эффективно или лучшим возможным образом. Поэтому я решил собрать советы, которые важны для моей повседневной работы. Большинство из них опираются на принцип «От греха подальше»: если что-то можно сделать несколькими способами, то я выбираю наименее рискованный.
                      Читать дальше →
                      • +34
                      • 21.2k
                      • 7
                    • Тесты на знание Python, PHP, Golang и DevOps: разбор викторины AvitoQuiz на Highload

                        Конференция Highload++ 2017 отгремела, и это было круто — как всегда. Мы пересматриваем доклады, вовсю пользуемся опытом, которым с нами поделились коллеги, и с удовольствием вспоминаем разные активности, которые проводились вне зоны докладов.


                        На нашем стенде, например, можно было пройти тест на знание одного из языков программирования (Python, Go, PHP) или тест для DevOps и получить красочную тематическую футболку. Сегодня хотим предложить вам ещё раз окунуться в атмосферу конференции и разобрать ответы на самые Highload-задачи из нашего теста. А может, вы сможете решить их, не заглядывая под спойлер?


                        Enjoy!


                        Читать дальше →
                      • Об особенностях сканирования исполняемых файлов антивирусами и доверии результатам VirusTotal



                          Всем привет. Ниже будет много глупого текста, ностальгических воспоминаний и школотного кода. Кроме того будет рассмотрена эффективность сервиса VirusTotal, а также антивирусных движков в отношении исполняемых файлов.
                          Читать дальше →