Как защититься от CSRF-атак в React?
Представьте, что у нас есть конечная точка /api/posts/delete, которая удаляет сообщение на основе идентификатора, указанного в теле запроса. Если мы будем проверять только cookie для аутентификации, то злоумышленник сможет создать вредоносный сайт со следующим скриптом, например:
👉 @sWebDev
Представьте, что у нас есть конечная точка /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
Какая защита может помочь предотвратить CSRF-атаки в React?
Anonymous Quiz
13%
Аутентификация по cookie
7%
Использование программного обеспечения для API, такого как Postman
77%
Использование токенов или других методов авторизации для конечных точек
4%
Отключение JavaScript на веб-странице
👍6
Задаем title из компонента Angular
Знаете о том, что title для веб-страницы можно задавать из компонентов Angular?
У Angular есть сервис Title в
При переходе на LoginComponent, заголовок браузера будет установлен как "Login".
👉 @sWebDev
Знаете о том, что title для веб-страницы можно задавать из компонентов Angular?
У Angular есть сервис Title в
@angular/platform-browser
. Мы внедряем сервис Title в наши компоненты и используем метод setTitle
для установки заголовка.import { Component, OnInit } from '@angular/core';
import { Title } from "@angular/platform-browser";
@Component({
...
})
export class LoginComponent implements OnInit {
constructor(private title: Title) {}
ngOnInit() {
this.title.setTitle("Login");
}
}
При переходе на LoginComponent, заголовок браузера будет установлен как "Login".
👉 @sWebDev
👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
ScrollOut + Splitting.js
Анимация текста, появляющаяся при скролле страницы. Выполнено на Splitting.js.
👉 @sWebDev
Анимация текста, появляющаяся при скролле страницы. Выполнено на Splitting.js.
👉 @sWebDev
👍9
Angular Super Forms: подтверждение пароля
Рассмотрим реализацию подтверждения пароля в форме на Angular. В статье объясняется почему подтверждение пароля является важным и предлагается руководство по созданию компонента, добавлению необходимых директив и логики валидации через Reactive Forms.
👉 @sWebDev
Рассмотрим реализацию подтверждения пароля в форме на Angular. В статье объясняется почему подтверждение пароля является важным и предлагается руководство по созданию компонента, добавлению необходимых директив и логики валидации через Reactive Forms.
👉 @sWebDev
❤4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как я стал фронтендером
1. Смотрел уроки на ютубе
2. Делал портфолио на гитхаб
3. Начал читать Frontend || Vollex
Frontend Vollex выжимает воду из курсов, книг, видеоуроков и заботливо делится самым главным. Гайды, готовый код, тесты и никакой копипасты.
Вы знаете, что делать: @vollex_frontend
1. Смотрел уроки на ютубе
2. Делал портфолио на гитхаб
3. Начал читать Frontend || Vollex
Frontend Vollex выжимает воду из курсов, книг, видеоуроков и заботливо делится самым главным. Гайды, готовый код, тесты и никакой копипасты.
Вы знаете, что делать: @vollex_frontend
👍7👎4
Media is too big
VIEW IN TELEGRAM
Cytoscape.js
Cytoscape.js - это мощный инструмент для визуализации и анализа графовых структур в веб-приложениях. С возможностью кастомизации, анимаций и интерактивности. Библиотека позволяет легко создавать визуально привлекательные графы для отображения связей, данных или сетей. Несмотря на свою небольшую известность, "Cytoscape.js" предоставляет множество расширений и плагинов для дополнительных функциональных возможностей.
👉 @sWebDev
Cytoscape.js - это мощный инструмент для визуализации и анализа графовых структур в веб-приложениях. С возможностью кастомизации, анимаций и интерактивности. Библиотека позволяет легко создавать визуально привлекательные графы для отображения связей, данных или сетей. Несмотря на свою небольшую известность, "Cytoscape.js" предоставляет множество расширений и плагинов для дополнительных функциональных возможностей.
👉 @sWebDev
👍5
Изучение Vue.js в 2023 году: дорожная карта разработчика
Если только начинаете знакомиться с Vue.js, то материал по ссылке будет очень кстати. В статье представлена не только дорожная карта, но и краткий очерк технологий, с которыми предстоит познакомиться.
👉 @sWebDev
Если только начинаете знакомиться с Vue.js, то материал по ссылке будет очень кстати. В статье представлена не только дорожная карта, но и краткий очерк технологий, с которыми предстоит познакомиться.
👉 @sWebDev
👍8❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Rellax.js
Инструмент для создания параллакс-эффектов с прокруткой. Библиотека позволяет создавать плавные анимации для элементов в зависимости от скорости прокрутки страницы. Rellax.js обладает минималистичным синтаксисом и простой настройкой.
👉 @sWebDev
Инструмент для создания параллакс-эффектов с прокруткой. Библиотека позволяет создавать плавные анимации для элементов в зависимости от скорости прокрутки страницы. Rellax.js обладает минималистичным синтаксисом и простой настройкой.
👉 @sWebDev
👍6
Настраиваем Angular Guards
В материале обзор процесса создания настраиваемых Angular Guards: создание Guard, параметризация и использование для защиты маршрутов.
👉 @sWebDev
В материале обзор процесса создания настраиваемых Angular Guards: создание Guard, параметризация и использование для защиты маршрутов.
👉 @sWebDev
👍3
Как защититься от внедрения вредоносных компонентов в React?
Если есть компонент, который динамически импортирует и рендерит другой компонент на основе свойства, то есть шанс передачи вредоносного имени компонента в качестве свойства и его импортирования. Как обезопасить свое приложение в таком случае?
👉 @sWebDev
Если есть компонент, который динамически импортирует и рендерит другой компонент на основе свойства, то есть шанс передачи вредоносного имени компонента в качестве свойства и его импортирования. Как обезопасить свое приложение в таком случае?
👉 @sWebDev
👍7
Какой способ обезопасит от внедрения вредоносных компонентов при динамическом импорте в React?
Anonymous Quiz
4%
1. Импортировать все компоненты динамически без ограничений.
26%
2. Рендерить компоненты только на серверной стороне.
13%
3. Отключить динамический импорт компонентов.
57%
4. Импортировать только те компоненты, чьи имена перечислены в списке.
👍9
Изменение интерполяции шаблона Angular
Мы все используем стандартный интерполятор шаблона {{}} в наших шаблонах для отображения свойств компонента. Начало - {{, а конец - }}. Если мы поместим свойство между ними, оно будет отображено в DOM-дереве браузера. А знаете ли вы, что мы можем изменить стандартные начальные и конечные разделители интерполяции на свои? Это просто — укажите это в свойстве интерполяции декоратора Компонента.
Интерполяция для использования в шаблоне AppComponent теперь будет "(())", а не "{{}}".
👉 @sWebDev
Мы все используем стандартный интерполятор шаблона {{}} в наших шаблонах для отображения свойств компонента. Начало - {{, а конец - }}. Если мы поместим свойство между ними, оно будет отображено в DOM-дереве браузера. А знаете ли вы, что мы можем изменить стандартные начальные и конечные разделители интерполяции на свои? Это просто — укажите это в свойстве интерполяции декоратора Компонента.
@Component({
interpolation: ["((","))"]
})
export class AppComponent {}
Интерполяция для использования в шаблоне AppComponent теперь будет "(())", а не "{{}}".
@Component({
template: `
<div>
((data))
</div>
`,
interpolation: ["((","))"]
})
export class AppComponent {
data: any = "dataVar"
}
👉 @sWebDev
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Top 10 Albums 2018
Проект анимированного музыкального рейтинга, выполненный на Splitting.js.
👉 @sWebDev
Проект анимированного музыкального рейтинга, выполненный на Splitting.js.
👉 @sWebDev
👍4
Что такое запахи кода в Angular?
"Запахи" кода - паттерны и принципы программирования, которые могут указывать на проблемы в кодовой базе. В статье рассматриваются несколько типичных "запахов", таких как "длинные методы", "глубокие вложенности", "дублирование кода". Автор предоставляет примеры кода и объяснения, как избегать или исправлять эти "запахи", чтобы сделать код более чистым, поддерживаемым и эффективным.
👉 @sWebDev
"Запахи" кода - паттерны и принципы программирования, которые могут указывать на проблемы в кодовой базе. В статье рассматриваются несколько типичных "запахов", таких как "длинные методы", "глубокие вложенности", "дублирование кода". Автор предоставляет примеры кода и объяснения, как избегать или исправлять эти "запахи", чтобы сделать код более чистым, поддерживаемым и эффективным.
👉 @sWebDev
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Viem
Viem - библиотека для создания пользовательских интерфейсов на Vue.js. Она предлагает удобный и декларативный способ разработки UI с помощью визуальных компонентов. Использование Viem улучшает производительность, уменьшает количество кода и упрощает процесс создания интерфейса.
👉 @sWebDev
Viem - библиотека для создания пользовательских интерфейсов на Vue.js. Она предлагает удобный и декларативный способ разработки UI с помощью визуальных компонентов. Использование Viem улучшает производительность, уменьшает количество кода и упрощает процесс создания интерфейса.
👉 @sWebDev
👍3👎3🤯2
DOM, DI и View: деревья в Angular
Чтобы стать продуктивным разработчиком на Angular, потребуется понимание различных деревьев, из которых состоит приложение. На первый взгляд легко можно спутать дерево инжекторов DI и DOM-дерево непосредственных HTML-элементов и вьюх Angular. Они похожи и иногда имеют прямое соответствие, но далеко не всегда. В статье рассмотрим различия, научимся держать их в уме и освоим, как можно обойти возможные трудности, связанные с ними.
👉 @sWebDev
Чтобы стать продуктивным разработчиком на Angular, потребуется понимание различных деревьев, из которых состоит приложение. На первый взгляд легко можно спутать дерево инжекторов DI и DOM-дерево непосредственных HTML-элементов и вьюх Angular. Они похожи и иногда имеют прямое соответствие, но далеко не всегда. В статье рассмотрим различия, научимся держать их в уме и освоим, как можно обойти возможные трудности, связанные с ними.
👉 @sWebDev
👍4