• Уязвимости вашего приложения

      Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


      Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


      В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

      Читать дальше →
    • Html страница глазами разработчика приложений. Часть 2: «Реализация»

        В Первой части мы подготовили нашу страницу.


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


        Имитация базы, как мне уже писали в комментариях, это json файлы с содержанием нужного текста. Вопрос: "Зачем тут Vue? Если это можно написать и на скриптах?". Если честно — для красоты html верстки. Ну и изучения новых технологий.

        Читать дальше →
      • Html страница глазами разработчика приложений. Часть 1: «Подготовка»

          Передо мной встала задача по обновлению текущего сайта одной компании, и в соответствии тренду выбор пал на landing page с поддержкой мультиязычности.


          Посмотрев на реализации представленные в интернете я ужаснулась. В теле страницы куча текста! С такой разметкой же невозможно работать. А если надо поменять информацию? Это надо лезть в html, искать нужное, и менять в нескольких местах. Короче ужас! И я подумала что хорошо бы использовать базу данных, но это же обычная страница, и разворачивать ради нее целый сервер? и базу? как то перебор! Работая с Angular2 я подумала что было бы классно с его помощью создать страницу, но он очень тяжелый, и не подходит… И тут я вспомнила о его аналоге Vue.js. Легкая библиотека, для создания приложений. Я подумала: "А почему бы не создать сайт с помощью vue и добавить имитацию базы?".


          Обдумав все за и против, посмотрев на другие подходы, мне захотелось внести немного "красоты" в html верстку.


          Для объяснения подхода я решила сделать небольшую страничку, потому что выкладывание полного кода существующей страницы считаю слишком "тяжелым".


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


          image

          Читать дальше →
        • Дайджест свежих материалов из мира фронтенда за последнюю неделю №302 (12 — 18 февраля 2018)

            Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

            Читать дальше →
            • +27
            • 9,9k
            • 2
          • Sublime Text 3 жив. (Настройка и работа)

            Sublime Text 3 — кроссплатформенный текстовый редактор.

            Краткий гайд для начинающих работать в sublime и в сфере вёрстки. Тут собрано всё самое необходимое и важное. (По ссылкам найдёте больше, если это нужно)

            Будем рассматривать его для Вёрстки на Pug / Less, где нам не нужен огромный функционал отладки. Поэтому именно этот редактор (по моему мнению) побеждает своих конкурентов как в скорости работы так и в функционале.



            1. Установка программы и контроль за дополнениями (Package Control)


            1. Устанавливаем Sublime Text 3. Тут всё просто — качаем и запускаем.
            2. Теперь нужно открыть возможность добавления пакетов. Она по умолчанию закрыта поэтому: Открываем консоль ctrl+`(ё), или идём в меню (View > Show Console). Вставляем туда код взятый с официального сайта (import urllib.request,os,ha...).
              Как подсказали друзья в комментариях — теперь этот пункт можно пропустить.
            3. Теперь нажимаем ctrl/⌘+shift+p или в меню (Tool > Command Palette).
            4. Тут мы можем Скачивать, устанавливать, удалять, просматривать дополнения и т.д.
            Читать дальше →
          • Веб компоненты. Часть 1: Пользовательские элементы

            • Tutorial
            Вступление

            Данная статья — первая часть из небольшой серии статей о создании веб-компонентов нативными средствами HTML и JS


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


            Для реализации такого подхода, в настоящее время разрабатываются три спецификации, о первой из которых, пойдет речь в этой статье. Итак, знакомимся — спецификация пользовательских элементов (custom elements), рабочий черновик которой оупбликован 13.10.2016 и последняя версия которого датирована 04.12.2017.


            Пользовательский элемент является наиболее важной частью АПИ, входящих в пакет веб компонент, поскольку именно он предоставляет ключевые возможности, а именно:


            • определение (собственно, создание) нового элемента
            • упаковка нестандартного функционала и данных в один тег
            Читать дальше →
            • +16
            • 6,5k
            • 9
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Почему не стоит использовать LocalStorage

            Привет, Хабр! Представляю вашему вниманию перевод статьи "Please Stop Using Local Storage" автора Randall Degges.


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

            Читать дальше →
          • Разработка изоморфного RealWorld приложения с SSR и Progressive Enhancement. Часть 1 — Введение и выбор стека

            • Tutorial
            Весной 2017 года Eric Simons, со-основатель учебного проекта Thinkster, анонсировал проект «RealWorld»демо приложение и спецификация к нему. Проект объявил своей целью выйти за рамки привычных «todo»-демок для более прикладного сравнения и изучения возможностей различных фреймворков и технологий, а также подходов к разработке и способов решения задач.

            image
            Читать дальше →
          • 10 IT-героев по версии Кодабры: Веб-разработка

              В этом году в преддверии весны, Кодабра совместно со школой «Летово» проводит конкурс, посвященный программированию, робототехнике и VR — «IT-герои». По этому замечательному поводу мы решили рассказать Хабру, кто же для нас самих является героем, на кого мы ориентируемся при обучении детей профессиям нового века, а перед кем снимаем шляпу за их вклад в популяризацию и развитие технологий.

              Эта статья будет посвящена выдающимся людям, повлиявшим на становление Web 2.0 и его победное шествие по планете. Прежде всего веб-программистам и технологическим евангелистам, работой которых мы вдохновлялись. Обращаем ваше внимание, что этот рейтинг является полностью субъективным, а расположение тех или иных имен в списке выбрано скорее из художественных соображений, чем из их вклада относительно друг друга.
              Читать дальше →
            • Фундаментальная уязвимость HTML при встраивании скриптов

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


                HTML — это язык гипертекстовой разметки. Чтобы говорить на этом языке, нужно соблюдать его формат, иначе тот, кто читает написанное, не сможет вас понять. Например, в HTML у тегов есть атрибуты:


                <p name="value">

                Тут [name] — это имя атрибута, а [value] — это его значение. В статье я буду использовать квадратные скобки вокруг кода, чтобы было понятно, где он начинается и заканчивается. После имени стои́т знак равенства, а после него — значение, заключенное в кавычки. Значение атрибута начинается сразу после первого символа кавычки и заканчивается сразу перед следующим символом кавычки, где бы он не находился. Это значит, что если вместо [value] вы запишете [OOO "Рога и копыта".], то значение атрибута name будет [OOO ], а еще у вашего элемента будет три других атрибута с именами: [рога], [и] и [копыта"."], но без значений.


                <p name="OOO "Рога и копыта"."></p>

                Если это не то, чего вы ожидали, вам нужно как-то изменить значение атрибута, чтобы в нем не встречалась кавычка. Самое простое, что можно придумать — просто вырезать кавычки.


                <p name="OOO Рога и копыта."></p>
                Читать дальше →
              Самое читаемое