Ликбез по распространенным Client-Side уязвимостям
В этой статье мы покажем:
как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
как скомпрометировать администратора сайта, отправив ему личное сообщение;
как атаковать разом всех пользователей при помощи комментария под статьей;
как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
как прослушивать WebSocket-соединения;
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
В этой статье мы покажем:
как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
как скомпрометировать администратора сайта, отправив ему личное сообщение;
как атаковать разом всех пользователей при помощи комментария под статьей;
как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
как прослушивать WebSocket-соединения;
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Создание класса и экземпляра
В этом примере мы создаем класс
#классы
В этом примере мы создаем класс
Animal
, который имеет конструктор для инициализации свойства name
и метод speak()
. Затем мы создаем экземпляр класса dog
и вызываем его метод speak()
.#классы
👍3
Измерение размеров объектов на фотографии
Несколько дней назад, чтобы доказать что в интернете кто‑то не прав, мне пришлось «считать пиксели», чтобы оценить соотношение размеров двух предметов на фото. Тогда еще я не сообразил сразу, что можно было просто загуглить что‑нибудь вроде «Pixel ruler» и получить размер предметов в пикселях, из которого легко можно получить соотношение. Я же взял подручный MS Paint, вырезал один предмет и уместил его несколько раз внутри другого предмета, сразу узнав во сколько раз один больше другого. Но мне вдруг стало интересно немного автоматизировать этот процесс и решил сделать пиксельную рулетку сам, такую что вводишь заранее уже известный тебе размер некоторого объекта, указываешь его на фото в виде линии, и потом уже другие линии автоматом пересчитываются по отношению к этому размеру.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Несколько дней назад, чтобы доказать что в интернете кто‑то не прав, мне пришлось «считать пиксели», чтобы оценить соотношение размеров двух предметов на фото. Тогда еще я не сообразил сразу, что можно было просто загуглить что‑нибудь вроде «Pixel ruler» и получить размер предметов в пикселях, из которого легко можно получить соотношение. Я же взял подручный MS Paint, вырезал один предмет и уместил его несколько раз внутри другого предмета, сразу узнав во сколько раз один больше другого. Но мне вдруг стало интересно немного автоматизировать этот процесс и решил сделать пиксельную рулетку сам, такую что вводишь заранее уже известный тебе размер некоторого объекта, указываешь его на фото в виде линии, и потом уже другие линии автоматом пересчитываются по отношению к этому размеру.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍2
Создание кольцевой диаграммы на JavaScript
Предлагаем пошаговое руководство по созданию и настройке на JavaScript интерактивной кольцевой диаграммы. Следуя ему, вы приобретете навыки и знания, которые позволят создавать персонализированные кольцевые диаграммы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Предлагаем пошаговое руководство по созданию и настройке на JavaScript интерактивной кольцевой диаграммы. Следуя ему, вы приобретете навыки и знания, которые позволят создавать персонализированные кольцевые диаграммы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍2
Наследование классов
Здесь класс
#классы
Здесь класс
Bird
наследует свойства и методы от класса Animal
, используя ключевое слово extends
. Мы также используем метод super()
для вызова конструктора родительского класса.#классы
👍4❤1🔥1
Утечки памяти в SSR
Меня зовут Владимир Захаров, я расскажу про утечки памяти в SSR. На самом деле, утечки могут случиться в JavaScript везде – и на сервер-сайде, и на клиенте, поэтому информация будет полезна даже тем, у кого пока нет SSR. Давайте чуть подробнее познакомимся. Я ведущий фронтэнд-разработчик, около 8 лет в отрасли. В Зарплате.ру больше не работаю, но основной опыт, о котором хочу рассказать, получен именно там. Я люблю плавающие баги, разговоры о техдолге и шутки про ненастоящих программистов. Поговорим про утечки памяти в SSR, про работу с памятью и про то, как всё это выглядит в браузере и в nodejs. Ну, и естественно, как со всем этим жить.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Меня зовут Владимир Захаров, я расскажу про утечки памяти в SSR. На самом деле, утечки могут случиться в JavaScript везде – и на сервер-сайде, и на клиенте, поэтому информация будет полезна даже тем, у кого пока нет SSR. Давайте чуть подробнее познакомимся. Я ведущий фронтэнд-разработчик, около 8 лет в отрасли. В Зарплате.ру больше не работаю, но основной опыт, о котором хочу рассказать, получен именно там. Я люблю плавающие баги, разговоры о техдолге и шутки про ненастоящих программистов. Поговорим про утечки памяти в SSR, про работу с памятью и про то, как всё это выглядит в браузере и в nodejs. Ну, и естественно, как со всем этим жить.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Геттеры и сеттеры
В этом примере класс
#классы
В этом примере класс
Rectangle
имеет геттер area
, который вычисляет площадь, и сеттер width
, который позволяет изменять ширину, но только если новое значение положительное.#классы
👍11❤2🔥2
Скрытие POI за зданиями
C 2018 года карта на 2gis.ru рендерится при помощи WebGL API для рисования трехмерной графики. Сначала мы в команде веб-карт использовали эту технологию просто как очень быструю рисовалку двухмерных данных с небольшими исключениями в виде 3D-домов и моделей.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
C 2018 года карта на 2gis.ru рендерится при помощи WebGL API для рисования трехмерной графики. Сначала мы в команде веб-карт использовали эту технологию просто как очень быструю рисовалку двухмерных данных с небольшими исключениями в виде 3D-домов и моделей.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍1
Статические методы
Статические методы класса могут вызываться непосредственно на самом классе, без создания экземпляра. В этом примере класс
#классы
Статические методы класса могут вызываться непосредственно на самом классе, без создания экземпляра. В этом примере класс
MathUtils
содержит статические методы для сложения и вычитания чисел.#классы
👍6
Всем привет!
Что ещё вы бы хотели увидеть на канале? *можно выбирать несколько вариантов
Что ещё вы бы хотели увидеть на канале? *можно выбирать несколько вариантов
Anonymous Poll
53%
Новости по Frontend
70%
Технологии: библиотеки, фреймворки и т.д.
18%
Мемы, приколы, юмор
13%
Ничего не нужно, все и так хорошо
4%
Другое (если выбрали этот пункт, то напишите в комментариях свой вариант)
👍5🔥2❤1
Что нового в Chrome 117
Три новые функции CSS позволяют легко добавлять плавные анимации появления и исчезновения.
Вычисление наборов данных более высокого порядка с помощью группировки массивов.
DevTools упрощает процесс локальных переопределений.
И многое другое.
Я Адриана Джара. Давайте узнаем, что нового ждет разработчиков в Chrome 117.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Три новые функции CSS позволяют легко добавлять плавные анимации появления и исчезновения.
Вычисление наборов данных более высокого порядка с помощью группировки массивов.
DevTools упрощает процесс локальных переопределений.
И многое другое.
Я Адриана Джара. Давайте узнаем, что нового ждет разработчиков в Chrome 117.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍6
Использование геттеров и сеттеров
В этом примере класс
#классы
В этом примере класс
Person
использует геттер и сеттер для получения и установки полного имени.#классы
👍6❤2
Видеоредактор, работа с видео и зачем там Canvas
Одной из задач, где мы в Ozon используем Canvas, является обработка видео. Для это у нас реализован минималистичный видеоредактор.
Современные устройства и браузеры развиваются достаточно быстро, но все-равно этого бывает недостаточно для задач со сложными вычислениями. К таким задачам можно отнести обработку видео.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Одной из задач, где мы в Ozon используем Canvas, является обработка видео. Для это у нас реализован минималистичный видеоредактор.
Современные устройства и браузеры развиваются достаточно быстро, но все-равно этого бывает недостаточно для задач со сложными вычислениями. К таким задачам можно отнести обработку видео.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍5🔥1
Использование классов как функции конструкторов
Здесь мы используем функцию конструктора
#классы
Здесь мы используем функцию конструктора
Car
для создания объекта. Мы добавляем метод getFullName
к прототипу Car
, чтобы он был доступен для всех экземпляров класса.#классы
👍7
Kysely.js типизированный sql builder
Kysely.js – это библиотека, позволяющая писать типизированные SQL запросы. Библиотека делает работу с SQL в вашем проекте более безопасной, избавляя от таких ошибок как опечатки в названиях колонок или таблиц и неправильное использование SQL операторов в коде (код не скомпилируется). Ко всему прочему она делает работу с SQL более удобной, предоставляя при написании запросов автодополнения для таблиц, колонок, алиасов и других сущностей. Kysely имеет незначительный слой абстракции над SQL для того чтобы можно было пользоваться всей мощью SQL и при этом не изучать множество дополнительных сущностей. Библиотека поддерживает MySQL, PostgreSQL, SQLite, PlanetScale, D3, SurrealDB и другие.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Kysely.js – это библиотека, позволяющая писать типизированные SQL запросы. Библиотека делает работу с SQL в вашем проекте более безопасной, избавляя от таких ошибок как опечатки в названиях колонок или таблиц и неправильное использование SQL операторов в коде (код не скомпилируется). Ко всему прочему она делает работу с SQL более удобной, предоставляя при написании запросов автодополнения для таблиц, колонок, алиасов и других сущностей. Kysely имеет незначительный слой абстракции над SQL для того чтобы можно было пользоваться всей мощью SQL и при этом не изучать множество дополнительных сущностей. Библиотека поддерживает MySQL, PostgreSQL, SQLite, PlanetScale, D3, SurrealDB и другие.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍4
Работа с классами
В этом примере мы создаем классы
#классы
В этом примере мы создаем классы
Animal
и Dog
. Dog
наследует от Animal
, и мы переопределяем метод makeSound
для класса Dog
, чтобы он вел себя по-разному. Это демонстрирует наследование и переопределение методов в классах JavaScript.#классы
👍9
Веб-компоненты в 2023: нужно поговорить
Я решил написать этот пост по мотивам своей недавней дискуссии в комментариях к другому посту, напрямую с веб-компонентами не связанному. Я часто вступаю в подобные дискуссии здесь на Хабре и на других площадках. Кроме того, я регулярно провожу технические интервью с разработчиками и мы, также, часто касаемся этой темы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Я решил написать этот пост по мотивам своей недавней дискуссии в комментариях к другому посту, напрямую с веб-компонентами не связанному. Я часто вступаю в подобные дискуссии здесь на Хабре и на других площадках. Кроме того, я регулярно провожу технические интервью с разработчиками и мы, также, часто касаемся этой темы.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Использование классов для создания интерактивных элементов на веб-странице
Класс
#классы
Класс
InteractiveElement
добавляет интерактивность к элементам на веб-странице, в данном случае, обрабатывая событие клика на кнопке.#классы
👍11
JavaScript. WebRTC. Соединение браузеров напрямую без сервера, peer-to-peer
WebRTC позволяет браузерам обмениваться информацией напрямую без сервера. Можно передавать видео, звук и данные.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
WebRTC позволяет браузерам обмениваться информацией напрямую без сервера. Можно передавать видео, звук и данные.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤7🔥5👍1
Использование классов для создания часов
Класс
#классы
Класс
Clock
создает объект, который отображает текущее время и обновляет его каждую секунду.#классы
❤15👍8🔥1