Обновить
256K+

Веб-разработка *

Делаем веб лучше

335,71
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как показать клиенту новый сервер до переключения DNS

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.1K

Изначально я пилил инструмент совершенно под другие задачи - закрывать админки и внутренние сервисы от ботов и посторонних глаз. Но в процессе работы над архитектурой меня осенило: встроенный механизм переопределения DNS (DNS Override) можно применить для тестирования миграции сайтов. И главное - это закрывает постоянную головную боль: как дать протестировать новый сервер нетехническим людям (клиентам, маркетологам, контент-менеджерам) без танцев с бубном вокруг их компьютеров.

Читать далее

Новости

Поведенческий антифрод: что еще анализируют антифрод-системы помимо отпечатков железа и браузера

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели6.5K

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

Как будто все еще только начинается. Давайте разберемся, что еще могут предложить системы защиты кроме отслеживания пользователя по отпечаткам браузера, насколько это безопасно и ресурсоемко для пользователя? Разбираем что из себя представляет поведенческий антифрод.

Читать про поведенческий антифрод

Коротко о веб-сертификатах безопасности

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

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

Исторически так сложилось, что сертификаты для подтверждения подлинности веб-сайтов при шифровании были выстроены в иерархическую структуру.

Имеется корневой супер-надёжно охраняемый сертификат (а точнее его секретный ключ), хранящийся в изолированном от глобального Интернета контуре, за 5-ю заборами с колючей проволокой, с бронированными дверями и конечно надёжно зашифрованный и расшифровывающийся комбинацией из нескольких ключей, независимо хранящихся у разных людей - гарантов его секретности (это реализуется, например, схемой Шамира).

Далее корневым сертификатом подписывается (заверяется) менее, но всё ещё очень надёжный промежуточный сертификат, или несколько таких. От которых в свою очередь цепочка доверия распространяется на промежуточные сертификаты следующего уровня или уже на оконечные (листьевые) сертификаты, которые используются собственно сайтами и веб-порталами для шифрования трафика. Конкретно сертификат используется с целью подтверждения, что содержимое вам отдаёт именно удостоверенная сторона, именно тот сайт, адрес которого вы набирали в строке адреса в браузере, а не какой-то шпион или кракер.

И тут весь вопрос в том, кому вы доверяете.

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

Стандартно браузеры либо используют свой список доверенных корневых сертификатов, либо пользуются средствами среды, то есть операционной системы (будь то Windows, iOS или Android). Как правило этот список можно дополнить или заменить на свой собственный. Например, можно выписать свой персональный (или корпоративный) сертификат, и только его оставить в списке. Это на случай, если вы доверяете только себе самому. При этом вы сами (или ваша организация) храните в тайне его секретный ключ, которым осуществляется подпись других сертификатов. И вы лично отвечаете тогда за безопасность.

Читать далее

Один запрос, пять наблюдателей: что сайт, провайдер, DNS и VPN узнают, когда вы открываете страницу

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели14K

Пока я собирал материал для этой статьи, мне казалось, что логика будет простой: без VPN сайт видит мой обычный IP, с VPN — адрес сервера выхода; cookies при этом никуда не деваются. На практике даже такой маленький эксперимент сразу подкинул вопросы. В DevTools при подключении через VPN на странице Хабра появился ещё один домен с Google-cookies. Значит ли это, что VPN начал собирать обо мне больше данных? Нет. Он меняет маршрут и IP, а сайт, рекламная сеть или аналитика могут из-за нового адреса отдать браузеру другую конфигурацию страницы.

С интернет-приватностью постоянно происходит то же самое. Фраза «провайдер всё видит» смешивает в одну кучу название сайта, содержимое страницы, IP-адрес и личность пользователя. А совет «включи VPN» часто звучит так, будто после этого исчезнут авторизация, cookies и браузерный отпечаток. Они не исчезают.

В статье я пройду путь одного запроса от адресной строки до сервера и обратно. Разберу, какие данные в этот момент остаются у браузера, что видят DNS-резолвер и провайдер, что получает сам сайт и какую новую роль берёт на себя VPN-сервис. Заодно покажу, почему HTTPS скрывает далеко не всё, а смена IP ещё не означает анонимность.

Читать далее

От идеи создания своего React‑проекта до столкновения с реальностью

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.3K

Книжный тир-лист, SPA, боты и 55 запросов в месяц. Честная история пет-проекта: от «все обнимут меня» до пререндера и коллабораций с блогерами.

Читать далее

Микроразметка в 2026-м: что реально работает, что умерло, а за что можно получить санкцию

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.2K

Микроразметке пятнадцать лет, и вокруг неё до сих пор два лагеря: одни верят в магическую кнопку «звёзды в выдаче», другие считают её карго-культом. Разбираю, что из Schema.org реально работает в Яндексе и Google в 2026 году, что тихо умерло за последние три года (FAQ, HowTo, sitelinks searchbox), зачем структурированные данные снова стали важны из-за LLM — и как за самодеятельность с рейтингами прилетает ручная санкция. С кодом, валидаторами и данными из практики агентства: у 95% сайтов, приходящих на продвижение, разметки нет вообще.

Читать далее

От чего защищает Certificate Transparency?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.8K

Сейчас активно идет пересмотр механизмов доверия к сертификатам, используемым для безопасного подключения к сайтам. Традиционные удостоверяющие центры, чьи корневые сертификаты зашиты в код операционных систем и браузеров, отозвали сертификаты для многих российских доменов. Это естественно подорвало к ним доверие. Отечественные центры, предлагаемые российскими госорганами, такое доверие пока еще не завоевали.

Читать далее

Детектор не приступов, а тряски. Приложение для часов Garmin

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Приложение называлось SeizureDetector — «детектор приступа». Под таким именем Connect IQ Store публиковать его отказался. Слишком много ответственности. И правильно сделал. Так что теперь это ShakeDetector, детектор тряски. Никогда не думал, что столкнусь с этой темой.

Читать далее

Агентный RAG, бенчмарк TRuST и при чём здесь Нафаня?

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели10K

Тестирование агентного RAG на многошаговых задачах бенчмарка TRuST: эволюция архитектуры, сравнение моделей и правила работы с промптами для сложных поисковых задач.

Читать далее

Одна статья, 90 языковых версий и Google: как пет‑проект превратился в платформу

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели9.3K

Я начинал с учебной социальной сети на Vue/Nuxt и NestJS, а в итоге собрал платформу, где одна публикация превращается в отдельные редактируемые версии на разных языках. Рассказываю о выборе LLM, культурных адаптациях, расчёте стоимости переводов, изменениях интерфейса после запуска и первых результатах индексации в Google.

Читать далее

React Update Lifecycle: что происходит при обновлении компонента

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.6K

В этой статье последовательно разобран полный цикл обновления React: от Virtual DOM до внутреннего устройства Fiber Reconciler.

Разобраться в жизненном цикле React

Process Forge — фреймворк для создания AI-процессов

Время на прочтение14 мин
Охват и читатели6.4K

На новогодних каникулах 2026 в одном из чатов Joomla-сообщества коллега по цеху поделился промптом для ИИ-агента и результатом этого промпта. За неделю до этого он впервые попробовал Gemini CLI. Я до этого ИИ пользовался только в веб версиях и в целом меня это устраивало. Увидев простыню текста, запрос в CLI и простыню ответа первое, что меня охватило: "Я НЕ ХОЧУ вот это всё изучать! Опять что-то новое, надоело...".

Потом были стадии проб и ошибок, попыток использовать готовые пакеты community skills с гитхаба с ролевым внушением "ты супер-пупер мега-бэкенд-Joomla разработчик с 40-летним опытом, сделай мне красиво". Где-то в середине этого полугодия я стал формализовать свои процессы (а это не только разработка). Формализация привела к моему пониманию некоторых базисов, которые общие для всех процессов. Об этом чуть ниже.

Теперь я хочу представить на суд уважаемой публике свои наработки по фреймворку для создания формализованных процессов работы для ИИ-агентов - Process Forge (GitHub).

Читать далее

Offline‑first PWA на примере фитнес‑трекера

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.2K

Привет, меня зовут Сергей Цибульченко, я fullstack‑разработчик. На хабре уже есть несколько статей про PWA, но они не раскрывают всех подводных камней данной технологии, я с этим лично столкнулся когда делал пет‑проект по этим статьям.

Для начала, что такое PWA? Это веб‑страница которая выглядит и ведёт себя как приложение, но при этом имеет технические ограничения веб‑страницы.

Читать далее

Ближайшие события

Я написал мессенджер в одиночку. Поможете устроить ему краш‑тест?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели23K

Дисклеймер: Это статья-проверка на прочность. Проект работает на PHP + MySQL + Polling каждые 3 секунды. Если вы кликнули по ссылке, а сервер отдаёт 502 или упорно молчит — значит, поллинг взял своё под нагрузкой Хабра, а я прямо сейчас судорожно оптимизирую запросы и чиню базу!

Привет, Хабр!

Я в одиночку разработал web‑мессенджер Conlink Messenger. Его главная фича — полный отказ от привязки к номеру телефона: только email, пароль и никакого сбора персональных данных.

Я долго откладывал публикацию в ожидании «идеального кода», но понял, что этот момент никогда не наступит. Поэтому выкатываю MVP в том виде, какой он есть — с простой архитектурой, поллингом вместо WebSocket и кучей спорных решений.

Если после этой статьи окажется, что половину backend'а стоит переписать — значит, опубликовал не зря. Приглашаю устроить проекту честный краш‑тест!

Узнать, как устроен Conlink →

Хостинги для сайтов на Django и других приложений на Python

Время на прочтение4 мин
Охват и читатели7.5K

В этой статье мы рассмотрим, какие есть типы сервисов для запуска проектов на Python. А в частности, различных админ-панелей, сайтов и веб-приложений на Django. И на что обратить внимание при выборе сервиса для хостинга Django-приложений.

Начнем с того, что Django проекту не подойдет хостинг статических сайтов и нужен именно сервис, поддерживающий работу backend-кода. И такие сервисы бывают очень разные и со своими особенностями.

Читать далее

О чём писать в книге о браузере, если ChatGPT уже знает все Web API?

Время на прочтение7 мин
Охват и читатели7.9K

Здравствуйте, уважаемые читатели.

Рады предложить вам одну из самых долгожданных новинок на тему современной веб-разработки - книгу уважаемого Александра Гусева @flancer "Браузер как операционная система для разработки современных приложений". Ниже предлагаем обзорный материал, в котором автор рассказывает о концепции книги, роли больших языковых моделей в современной веб-разработке, об истинных возможностях браузера как рабочего инструмента и о системном понимании Интернета.

Читать далее

Частые ошибки в вёрстке, которые встречаются даже на крупных проектах

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели11K

Привет, Хабр!

Я во фронтенде уже пятнадцать лет и всегда видел разные примеры кода «с душком». То, что десять лет назад считалось нормальной практикой, сегодня вызывает улыбку. Современная вёрстка не стала исключением.

Мне нравится наблюдать за тем, как меняются подходы к ней. Это не история о том, что раньше всё было плохо, а сейчас хорошо, или наоборот. Просто одни ошибки уходят, а на их место приходят другие.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Как мы делали доступными 37 госсайтов: грабли, скринридеры и никакой горизонтальной прокрутки

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели7.6K

Уже более 10 лет мы сопровождаем Единый официальный сайт органов власти Ханты-Мансийского автономного округа — Югры (admhmao.ru, далее – сайт), в структуру которого входят ещё 36 сайтов органов власти округа. За это время требования к доступности государственных сайтов несколько раз менялись.

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

Читать далее

Next.js, optimistic UI и autosave

Время на прочтение6 мин
Охват и читатели7.7K

Optimistic update меняет клиентское состояние до ответа сервера. Autosave отправляет новую версию после паузы во вводе. До завершения action в приложении одновременно существуют локальные данные, запрос в работе и последняя подтверждённая версия на сервере.

При optimistic create клиент может показать сущность с временным id, а сервер вернуть другой id. Ошибка после частичной записи оставляет сущность на сервере и запускает локальный rollback. При autosave ответы приходят не в порядке отправки. Старый ответ меняет статус уже после сохранения новой версии. updatedAt может перейти вперёд до завершения записи.

В учебном проекте Workbench optimistic create использует clientId для одинакового id на клиенте и сервере. Autosave-демо передаёт requestId в каждый запрос. Редактор хранит статусы saving, saved и error отдельно от текста заметки.

Читать далее

“Половина денег уходит на оплату LLM”: как мы автоматизировали чаты поддержки и продаж с помощью ИИ

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.7K

Текст написан по мотивам интервью с Дмитрием Бусовым, CEO проекта LeaderChat.

Разбираю историю LeaderChat — сервиса, который начинался как обычный онлайн-чат с живыми операторами, а после появления современных LLM-моделей полностью изменил подход к работе. Спойлер: главным изменением стало даже не внедрение ИИ, а полный пересмотр того, как вообще должна работать автоматизация общения с клиентами.

Читать далее
1
23 ...