Frontender Libs - обзор библиотек JS / CSS
8.48K subscribers
2.01K photos
728 videos
1 file
235 links
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/sWebDev
Download Telegram
Защита от внедрения компонентов в React

Если есть компонент, который динамически импортирует и рендерит другой компонент на основе свойства, то есть шанс передачи вредоносного имени компонента в качестве свойства и его импортирования.

Хороший способ обезопасить себя - это ограничить количество компонентов, которые можно динамически импортировать и рендерить. Импортируя только тот, чье имя есть в списке:

   const COMPONENTS = {
Home: () => import('./Home'),
Profile: () => import('./Profile'),
// ...
};

function DynamicComponent({ componentName }) {
const [Component, setComponent] = useState(null);

useEffect(() => {
const loadComponent = COMPONENTS[componentName];
if (loadComponent) {
loadComponent()
.then(setComponent)
.catch(console.error);
}
}, [componentName]);

return Component ? <Component /> : null;
}


👉 @sWebDev
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Moon Reflection on Sea - Anime js

Анимация смены времени суток, выполненная на Anime.js.

👉 @sWebDev
👍8
Сервис для обнаружения типа устройства пользователя на TypeScript и Vue 3

Туториал для разработки собственного сервиса, способного определять способ взаимодействия с веб-приложением (touchscreen, мышка), ориентацию экрана (горизонтальная, вертикальная), тип устройства (desktop, tab, phone).

👉 @sWebDev
👍2
Fitty

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

👉 @sWebDev
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
PComm Ghost | Anime JS

Анимированное приведение, выполненное на Anime.js.

👉 @sWebDev
👍4
🔥Тест по React JS от OTUS🔥

— Ответьте на 19 вопросов и проверьте, насколько хорошо вы знаете язык. Сможете сдать — пройдёте на продвинутый онлайн-курс по React.js со скидкой!

🚀ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА ПО REACT.JS https://otus.pw/H0pAg/

Курс доступен в рассрочку.

🎁Пройдете успешно тест, получите доступ к открытым урокам курса.

Нативная интеграция. Информация о продукте www.otus.ru
👍2
Как использовать Axios с Vue.js

Рассмотрим интеграцию библиотеки Axios во Vue.js для управления HTTP-запросами. Руководство предоставляет простой, но краткий синтаксис Axios для выполнения GET и POST запросов, а также обработку ошибок. Объяснения и примеры понятны, что облегчает понимание даже для новичков. Статья подчеркивает преимущества Axios, такие как поддержка отмены запросов. Однако, некоторые дополнительные примеры и сценарии использования могли бы обогатить материал.

👉 @sWebDev
👍5
Shave.js

JS библиотека для обрезки текста в блоках с фиксированными размерами. Если у вас есть ограничение по высоте или ширине элемента и текст не помещается полностью, Shave.js автоматически обрежет его и добавит многоточие в конец. Библиотека легка в использовании, поддерживает анимацию и обрабатывает изменение размеров окна браузера.

👉 @sWebDev
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Anime js Hero banner

Анимированный баннер, выполненный с применением библиотеки Anime.js.

👉 @sWebDev
👍5
Какой вариант защиты от уязвимости IDOR применен в коде?

Недавно мы рассказывали об уязвимости Insecure Direct Object References (IDOR) и рассматривали один из вариантов защиты:

    UserDetails() {
const [user, setUser] = useState(null);

useEffect(() => {
fetch('/api/user', {
headers: {
Authorization: `Bearer ${localStorage.getItem('token')}`
}
})
.then(response => response.json())
.then(setUser);
}, []);
// Рендер деталей пользователя...
}

Что это за вариант?

👉 @sWebDev
👍4
Angular - Обработка ошибок 101

Руководство по обработке ошибок в Angular приложениях. Рассмотрим базовые методы обработки ошибок, такие как использование оператора catchError и создание специализированных сервисов для обработки ошибок. Статья также описывает, как настроить глобальный обработчик ошибок. Автор уделяет внимание важности уведомления пользователей об ошибках и предоставляет примеры кода для наглядности.

👉 @sWebDev
🔥2
Защита от открытых редиректов React

Открытые редиректы возникают, когда приложение включает в целевой URL пользовательский ввод без предварительной проверки. Это может обмануть пользователей и привести к краже данных.

Для защиты мы можем проверять URL перенаправления перед его использованием. Один из способов сделать это - поддерживать список разрешенных URL:

   const ALLOWED_REDIRECTS = ['/home', '/profile', /* ... */];

function Login() {
const [redirectTo, setRedirectTo] = useState('');

const login = async () => {
// Предположим, что эта функция выполняет вход пользователя...
await loginUser();

if (ALLOWED_REDIRECTS.includes(redirectTo)) {
window.location.href = redirectTo;
}
};

// Отрисовываем форму входа...
}


👉 @sWebDev
👍3
Media is too big
VIEW IN TELEGRAM
3D Globe Three.js with location pointer

Анимированный глобус, выполненный на CSS и библиотеке Three.js.

👉 @sWebDev
👍4
React + Signals = Vue 3

В статье сравнение подходов для обработки сигналов React и Vue3. Рассмотрим различия между двумя фреймворками на примере паттерна "сигналов". Изучив материал, вы сможете выбрать наиболее подходящий инструмент в зависимости от вашего проекта.

👉 @sWebDev
👍41🤔1
AngularFire

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

👉 @sWebDev
👍3
Media is too big
VIEW IN TELEGRAM
Создаем клон Twitter на NextJs и Supabase

Пошаговый туториал по созданию собственного Твиттера на NextJs и Supabase.

👉 @sWebDev
👍6
Аутентификация в Angular, почему это так сложно уложить в голове

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

👉 @sWebDev
👍3
Media is too big
VIEW IN TELEGRAM
Ant Design Vue

Ant Design Vue - библиотека компонентов для разработки пользовательских интерфейсов с использованием Vue.js. Предоставляет более 50 готовых компонентов, включая кнопки, формы, таблицы, навигацию и многое другое. Ant Design Vue следует дизайн-принципам Ant Design и Material Design, обеспечивая современный и стильный внешний вид. Библиотека предоставляет возможность настройки тем, адаптирования компонентов и управления состоянием приложения.

👉 @sWebDev
👍5👎4
This media is not supported in your browser
VIEW IN TELEGRAM
CPC - GSAP Custom Bounce

Анимация текста, выполненная с применением GSAP.js.

👉 @sWebDev
👍5
Как защититься от CSRF-атак в React?

Представьте, что у нас есть конечная точка /api/posts/delete, которая удаляет сообщение на основе идентификатора, указанного в теле запроса. Если мы будем проверять только cookie для аутентификации, то злоумышленник сможет создать вредоносный сайт со следующим скриптом, например:

  fetch('https://your-website.com/api/posts/delete', {
method: 'POST',
body: JSON.stringify({
id: 'some-post-id',
}),
credentials: 'include',
});

Как защитить свое приложение в таком случае?

👉 @sWebDev
👍4🔥1