PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать, иначе рискуете оставить значительную уязвимость, ожидающую своего применения!
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
Заметки разработчика
Совет по безопасности: Безопасна ли функция strip_tags()
PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать.
Добро пожаловать в шестую часть нашей серии статей о TypeScript! В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
Заметки разработчика
Основы TypeScript: Объединение, Литеральные и Размеченные типы
В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
При использовании кэширования обещание значительного повышения производительности должно быть сопоставлено с его стоимостью, связанной со сложностью и инфраструктурой. Давайте обсудим доступные варианты, чтобы вы могли использовать наилучшую реализацию для любой ситуации.
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Заметки разработчика
Стратегии кэширования в Laravel
Обзор лучших способов добавления кэширования в "медленные" места приложения
👍1
Добро пожаловать в седьмую часть цикла статей о TypeScript! В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода.
https://www.dev-notes.ru/articles/typescript/typescript-basics-typing-functions-and-signatures/
https://www.dev-notes.ru/articles/typescript/typescript-basics-typing-functions-and-signatures/
Заметки разработчика
Основы TypeScript: Типизация функций и сигнатур
В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода."
👍2
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим очередным багажом трюков. Вы гарантированно узнаете что-то новое!
В прошлой статье мы рассмотрели широкий спектр "неортодоксальных" вариантов, которые можно использовать в сочетании с моделями Eloquent. Однако та статья была лишь верхушкой айсберга. В этой статье я хотел бы рассказать о нескольких других рекомендациях и трюках, которые могут быть немного более эзотерическими, но, тем не менее, все ещё удобными, чем те, что были представлены в первой статье. Например, вы когда-нибудь задумывались об использовании фабрик моделей вне сидеров или тестов? Нет? Тогда я уверен, что вы ещё узнаете что-то новое, так что обязательно дочитайте до конца!
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent-2/
В прошлой статье мы рассмотрели широкий спектр "неортодоксальных" вариантов, которые можно использовать в сочетании с моделями Eloquent. Однако та статья была лишь верхушкой айсберга. В этой статье я хотел бы рассказать о нескольких других рекомендациях и трюках, которые могут быть немного более эзотерическими, но, тем не менее, все ещё удобными, чем те, что были представлены в первой статье. Например, вы когда-нибудь задумывались об использовании фабрик моделей вне сидеров или тестов? Нет? Тогда я уверен, что вы ещё узнаете что-то новое, так что обязательно дочитайте до конца!
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent-2/
Заметки разработчика
Неортодоксальный Eloquent II
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим очередным багажом трюков. Вы гарантированно узнаете что-то новое!
👍1
Добро пожаловать в восьмую часть нашей серии статей о TypeScript! В этой части мы познакомимся с динамичным ландшафтом типов TypeScript, изучим типы
https://www.dev-notes.ru/articles/typescript/typescript-basics-any-void-never-null-strict-null-checks/
any, void, never, null и значение строгой проверки null.https://www.dev-notes.ru/articles/typescript/typescript-basics-any-void-never-null-strict-null-checks/
Заметки разработчика
Основы TypeScript: Any, Void, Never, Null, Строгие проверки Null
В этой статье мы познакомимся с динамичным ландшафтом типов TypeScript, изучим типы any, void, never, null и значение строгой проверки null.
Обработка исключений — важнейший аспект разработки веб-приложений, гарантирующий, что ваше приложение сможет изящно справиться с неожиданными ошибками и предоставить пользователям содержательные ответы. Laravel поставляется с надёжной системой обработки исключений, которая позволит вам эффективно справляться с ошибками. В этой статье мы рассмотрим основы обработки исключений в Laravel, а также ключевые концепции.
https://www.dev-notes.ru/articles/laravel/understanding-exception-handling-in-laravel/
https://www.dev-notes.ru/articles/laravel/understanding-exception-handling-in-laravel/
Заметки разработчика
Понимание обработки исключений в Laravel
Laravel поставляется с надёжной системой обработки исключений. В этой статье мы рассмотрим основы обработки исключений в Laravel, а также ключевые концепции.
Расширение Sodium в PHP 8.4 теперь поддерживает шифры аутентифицированного шифрования AEGIS-128L и AEGIS256. Они значительно быстрее, чем AES-GCM и CHACHA20-POLY1305. В этой статье мы сравним их и объясним, как безопасно шифровать и расшифровывать данные с помощью AEGIS-128L и AEGIS256 на PHP.
https://www.dev-notes.ru/articles/php/php-aegis-encryption/
https://www.dev-notes.ru/articles/php/php-aegis-encryption/
Заметки разработчика
Шифрование AEGIS с расширением PHP Sodium
Расширение Sodium в PHP 8.4 теперь поддерживает шифры аутентифицированного шифрования AEGIS-128L и AEGIS256.
AEGIS — это семейство алгоритмов аутентифицированного шифрования на основе AES, которое быстрее, чем AES-GCM. Расширение Sodium в PHP 8.4 поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с libsodium 1.0.19 или более поздней версии.
https://www.dev-notes.ru/articles/php/php-8-4-sodium-aegis-encryption-support/
https://www.dev-notes.ru/articles/php/php-8-4-sodium-aegis-encryption-support/
Заметки разработчика
PHP 8.4: Sodium: Поддержка AEGIS-128L и AEGIS256
PHP 8.4 Sodium поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с libsodium 1.0.19 или более поздней версии.
Добро пожаловать в девятую часть нашей серии статей о TypeScript! В этой части мы углубимся в практику объектно-ориентированного программирования (ООП), уделив особое внимание классам и наследованию.
https://www.dev-notes.ru/articles/typescript/typescript-basics-oop-practices-classes-and-inheritance/
https://www.dev-notes.ru/articles/typescript/typescript-basics-oop-practices-classes-and-inheritance/
Заметки разработчика
Основы TypeScript: ООП практика, классы и наследование
В этой статье мы углубимся в практику объектно-ориентированного программирования (ООП), уделив особое внимание классам и наследованию.
Многие разработчики предпочитают использовать TypeScript из-за его функций проверки типов. Однако это требует дополнительного шага транспонирования, который может быть хлопотным и отнимающим время. В этой статье мы расскажем, как использовать JSDoc, чтобы получить все те же элементы контроля, но писать на обычном JavaScript, что позволяет сократить время разработки и улучшить документацию!
https://www.dev-notes.ru/articles/javascript/jsdoc-a-solid-alternative-to-typescript/
https://www.dev-notes.ru/articles/javascript/jsdoc-a-solid-alternative-to-typescript/
Заметки разработчика
JSDoc: Надёжная альтернатива TypeScript
Мы расскажем, как использовать JSDoc, чтобы получить те же элементы контроля, что и с TypeScript, но в обычном JavaScript!
Добро пожаловать в десятую и заключительную часть нашей серии статей о TypeScript! В этой части мы исследуем тонкости работы с сеттерами/геттерами, protected, private/public и static.
https://www.dev-notes.ru/articles/typescript/typescript-basics-set-get-protected-private-public-static-members/
https://www.dev-notes.ru/articles/typescript/typescript-basics-set-get-protected-private-public-static-members/
Заметки разработчика
Основы TypeScript: Сетеры/Гетеры, protected, private/public/static
В этой части мы исследуем тонкости работы с сеттерами/геттерами, protected, private/public и static.
SSH3 — это полный пересмотр протокола SSH, накладывающий его семантику на механизмы HTTP. В двух словах, SSH3 использует QUIC+TLS1.3 для создания безопасного канала и механизмы HTTP Authorization для аутентификации пользователей.
https://www.dev-notes.ru/articles/devops/ssh3-faster-and-rich-secure-shell-using-http3/
https://www.dev-notes.ru/articles/devops/ssh3-faster-and-rich-secure-shell-using-http3/
Заметки разработчика
SSH3: более быстрый и безопасный шелл с использованием HTTP/3
SSH3 — это полный пересмотр протокола SSH, накладывающий его семантику на механизмы HTTP.
В мире программирования поддержание чистоты и надёжности кода имеет большое значение. Паттерн Value Objects способен значительно улучшить качество вашего кода, сделав его более надёжным и удобным для сопровождения.
https://www.dev-notes.ru/articles/php/value-objects-in-php-8-building-a-better-code/
https://www.dev-notes.ru/articles/php/value-objects-in-php-8-building-a-better-code/
Заметки разработчика
Value Objects в PHP 8: Создание лучшего кода
Паттерн Value Objects способен значительно улучшить качество вашего кода, сделав его более надёжным и удобным для сопровождения.
👍3
В предыдущей статье мы рассмотрели возможности Value Objects в повышении качества кода, надёжности системы и минимизации необходимости обширной валидации. Теперь давайте погрузимся глубже, чтобы улучшить понимание и использование этого важнейшего инструмента.
https://www.dev-notes.ru/articles/php/advanced-value-objects-in-php-8/
https://www.dev-notes.ru/articles/php/advanced-value-objects-in-php-8/
Заметки разработчика
Продвинутые Value Objects в PHP 8
Погрузимся глубже в Value Objects, чтобы улучшить понимание и использование этого важнейшего инструмента.
👍2
Вы наверняка слышали, что полагаться на то, что ключи массива сохраняют определённый порядок, опасно. В спецификации JSON эти пары ключ/значение даже определяются как "неупорядоченные". Но, возможно, на практике вы никогда не сталкивались с ситуацией, когда порядок изменялся по сравнению с тем, что вы ожидали.
https://www.dev-notes.ru/articles/eloquent/dont-rely-on-key-ordering-of-mysql-json-values/
https://www.dev-notes.ru/articles/eloquent/dont-rely-on-key-ordering-of-mysql-json-values/
Заметки разработчика
Не полагайтесь на порядок ключей в значениях MySQL JSON
Вы наверняка слышали, что полагаться на то, что ключи массива сохраняют определённый порядок, опасно. Такое поведение застало меня врасплох.
👍1
Знаете ли вы разницу между
https://www.dev-notes.ru/articles/laravel/security-tip-escape-output-with-e/
e(), htmlspecialchars() и htmlentities()? Можно ли просто использовать e() для всего?https://www.dev-notes.ru/articles/laravel/security-tip-escape-output-with-e/
Заметки разработчика
Совет по безопасности: Экранирование с e(), htmlspecialchars() и htmlentities()
Знаете ли вы разницу между e(), htmlspecialchars() и htmlentities()? Можно ли просто использовать e() для всего?
👍1
Не раз и не два мы сталкивались с печально известным исключением 'Token Mismatch' в Laravel. Но, бедняга просто заботится о вас, пытаясь защитить от зла 😈, давайте посмотрим...
https://www.dev-notes.ru/articles/laravel/laravel-core-csrf/
https://www.dev-notes.ru/articles/laravel/laravel-core-csrf/
Заметки разработчика
Laravel под капотом: CSRF
Каждый сталкивался с печально известным исключением 'Token Mismatch' в Laravel. Но, бедняга просто заботится о вас, пытаясь защитить от зла, давайте посмотрим.
👍2
Обеспечение постоянства и надёжности API сродни удержанию корабля на плаву во время шторма. По мере того как ваше приложение растёт и изменяется, возникает необходимость управлять различными версиями API. Laravel, популярный PHP-фреймворк, предлагает множество инструментов, помогающих ориентироваться в этих неспокойных водах. Но при таком количестве маршрутов как убедиться, что вы идёте по правильному пути? На помощь приходит версионирование API.
https://www.dev-notes.ru/articles/laravel/api-versioning-in-laravel-the-complete-guide-to-doing-it-right/
https://www.dev-notes.ru/articles/laravel/api-versioning-in-laravel-the-complete-guide-to-doing-it-right/
Заметки разработчика
Версионирование API в Laravel: Как сделать это правильно
Вы можете легко ориентироваться в версиях API Laravel с помощью Версионирования URI, обеспечивая стабильную и надёжную интеграцию по мере развития приложения.
🔥2
Подделка межсайтовых запросов (CSRF) - одна из традиционных уязвимостей, с которыми приходится сталкиваться веб-приложениям. Все веб-фреймворки, включая Symfony, поддерживают защиту от CSRF из коробки. Менее известной уязвимостью является Login CSRF, особый вид CSRF-атаки.
https://www.dev-notes.ru/articles/symfony/combatting-login-csrf-with-symfony/
https://www.dev-notes.ru/articles/symfony/combatting-login-csrf-with-symfony/
Заметки разработчика
Противодействие Login CSRF в Symfony
Все веб-фреймворки, включая Symfony, поддерживают защиту от CSRF из коробки. Менее известной уязвимостью является Login CSRF, особый вид CSRF-атаки.
👍2