Задать вопрос
  • Как работает аутентификация Яндекса через QR-код?

    @knigaman
    Абсолютно банально работает эта схема. На бекэнде генерируется токен который отправляется в браузер и из него формируется QR код который ты и видишь. Каждую секунду (или другой промежуток времени) браузер делает запрос на сервер с этим токеном и ждет команды на вход в аккаунт или какое-то другое действие (к примеру отклонение входа или устаревание токена и, соответственно, QR кода - это нужно чтобы иногда менять QR коды в целях безопасности). Если мы со своей мобилы сканируем QR код и одобряем вход то с мобилы летит на бекэнд команда для одобрения входа. Когда браузер снова обратится на бекэнд с токеном то бекэнд поймет что этот токен одобрен и выдаст сессию браузеру (кукисы или jwt токены или еще что).

    В целом это все, дальше уже различные нюансы. Ежесекундные запросы можно заменить на лонгпулинг или вебсокеты. Можно сделать нехранимые токены чтобы не засорять базу при каждом посещении страницы входа, можно показывать карту с точкой откуда происходит вход, расшифровывать user-agent чтобы показывать какое устройство входит и т.д. и т.п. Но в общем схема выглядит именно так.

    UPD: Тут важный нюанс: если мы показываем токен в QR коде и потом им же стучимся на бекэнд за сессией то возникает уязвимость - любой прохожий отсканирует этот QR код и начнет в своем браузере стучаться с этим же токеном, ты одобряешь вход и в состоянии гонки злоумышленник может достучаться первым до бекэнда и перехватить твою сессию, а ты останешься с носом. Поэтому нужно генерировать пару открытый токен-закрытый токен. Открытый будет загоняться в QR код, а по закрытому будем стучаться к бекэнду за сессией. В этом случае не залазя в устройство перехватить вход будет невозможно.
    Ответ написан
  • Контейнер rabbitmq docker стартует раньше чем сервис nginx. Как указать согласованность запуска?

    @Zerg89
    Насколько помню если нужно согласовать несколько контейееров то это docker-compose
    И в нем должно быть что-то типа такого
    celery:
       depends_on:
         - rabbitmq # старт после старта контейнера rabbitmq
       command: sh -c './wait-for host:5432 -- cmd' # ожидаем
    Ответ написан
    4 комментария
  • Как такое сверстать?

    @7rows
    Frontend Разработчик / Vue / JS / TS / CSS
    Держи
    Недавно нашли, нам очень помогло, переменные можешь так же, отрегулировать

    Можно еще что-то тут глянуть
    Ответ написан
    1 комментарий
  • Перевод бэкенда с PHP на NodeJs?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1-2: Фреймворк/ОРМ не принципиальны — накосячить и страдать можно абсолютно с любым или без. Определитесь для начала с вашими конкретными требованиями к нему, а уже потом собираете список подходящих под ваши требования, щупаете каждый и выбираете тот, что вам больше нравится.

    3: Описать в ОРМ модели на текущий момент времени и дальше новые миграции делать в рамках данной ОРМ. Ну и проверять на тестовой БД перед деплоем, конечно же.

    4: Нет, смысла нет. Сегодня оно есть — завтра нет или ещё что. А ещё есть проблемы совместимости и сама незрелость проекта. Производительность — понятие относительное. Если она вам нужна — для этого есть такие вещи как "Нагрузочные тесты", "Профилирование", "Оптимизация" и прочее. И использовать это надо тогда, когда у вас встанет такой вопрос. Ну или осваивать Go/Rust/C#/C++.

    Иметь внятные способы/библиотеки для WS-соединений

    uWebSocket — потому что на сях и активно развивается.

    возможность само-перезапуска в случае, если совсем "ой"

    pm2 или аналоги типа luster.

    бэк на js - тот же зоопарк, что и фронт на js. В связи с чем нужна помощь.

    Зоопарк сейчас вообще везде. Вот именно для помощи в вашем конкретном случае вам следует нанять опытного NodeJS разработчика как минимум для первичной консультации и регулярного общего контроля хотя бы. А именно: собрать ваши требования и детали по проекту, подготовить как минимум общее ТЗ и уже по результатам консультации принимать какие-то конкретные решения.
    Ответ написан
    Комментировать
  • Какие нужны навыки начинающему junior сис админу и каков его карьерный рост?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Компании разные, ставки разные, поэтому и требования довольно разнообразные. На старте полезно иметь кругозор пошире, знать как можно больше всего, пусть даже по верхам, и уметь быстро углубиться в пригодившуюся тему. С карьерным ростом специализация будет всё уже, а глубина знаний в выбранной области всё больше. Обычно из эникейшика админ вырастает в настоящего сисадмина, который не в принтерах копается и не под столами с обжимником лазит, а управляет серверами и активным сетевым оборудованием. Потом сисадмин сосредотачивается либо на сетях, либо на администрировании серваков какого-то определённого типа и превращается в сетевого инженера, администратора баз данных и т.п. Если админ ещё и код писать умеет, то часто превращается в devops'а. Впрочем, сейчас девопсами называют всех подряд, кто умеет настроить дженкинс и кубик. Параллельно со специализацией растёт и размер подответственной инфраструктуры, от десятка компов маленькой компании до сети транс-национальной корпорации, покрывающей территорию нескольких стран. На каком-то этапе роста появятся подчинённые, а потом и подчинённые у подчинённых. Появляется необходимость забивать голову всякими там ITIL'ами. И однажды себя обнаруживаешь на должности какого-нибудь там CIO.
    Ответ написан
    Комментировать
  • Туннель Wireguard — всё?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Судя по симптомам - да похоже на блок со стороны РКН.
    И да - в нынешних реалиях возможно поднять туннель, для вас можно начать с awg, чтобы решить проблему с наименьшими потерями времени в настройке.
    Ответ написан
    3 комментария
  • Туннель Wireguard — всё?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Сделай обфускацию WG с помощью:
    Обфускация
    WG+Wstunnel

    и всё будет работать...
    Ответ написан
    Комментировать
  • Как опубликовать Django приложение, чтобы работали картинки .jpg?

    @Everything_is_bad
    Публиковал на render.com
    да когда же вы доки используемых сервисов научитесь читать https://render.com/docs/deploy-django#set-up-stati...
    Ответ написан
    Комментировать
  • Как проверить, наследует ли объект в обобщённом методе?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Получить список интерфейсов объекта из его типа и проверить есть ли среди них нужный вам универсальный интерфейс:
    if (item != null
        && item.GetType().GetInterfaces().Any(
            i => i.IsGenericType
            && i.GetGenericTypeDefinition() == typeof(IEnumerable<>))
        )
    {
        IEnumerable<object> collection = (IEnumerable<object>)item;
    }
    Ответ написан
    3 комментария
  • Как запустить две копии программы в Linux?

    Зависит от конкретной программы.
    Обычно достаточно просто два раза её запустить - будет два разных процесса.
    Если программа обращается к каким-то файлам, то надо смотреть в конфиг самой программы, как два разных экземпляра натравить на разные файлы (передать разные конфиги или working directory).

    Ещё может быть вариант, что программа требует эксклюзивного доступа к каким-нибудь ресурсам - тогда только при помощи виртуализации
    Ответ написан
    Комментировать
  • Почему после изменений в css на сайте нет изменений?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    во время разработки всегда используйте этот режим:

    spoiler
    68ed3b4cb4e83141316563.png


    и проблем у вас не будет.
    Ответ написан
    Комментировать
  • Что происходит с VLESS+REALITY на серверах aeza?

    @Drno
    массовая, не только у аеза
    spoiler

    Почему перестал работать ваш VLESS?
    Скорее всего, вы использовали популярный метод маскировки: в настройках вашего VLESS в качестве SNI был указан какой-нибудь "белый", разрешенный домен, например, www.google.com, cdn.discordapp.com или что-то подобное.

    До недавнего времени эта схема работала. DPI видел, что вы подключаетесь к IP-адресу вашего сервера, но в SNI было указано google.com. Система думала: "Ну, может быть, это какой-то хитрый роутинг, но раз домен хороший, пропущу".

    Новая логика блокировки РКН основана на несоответствии (mismatch):

    DPI видит ваш пакет: Он идет на IP-адрес вашего сервера (допустим, 12.34.56.78).

    DPI читает SNI: Внутри пакета он видит SNI, например, www.google.com.

    Проверка соответствия: Система DPI мгновенно делает DNS-запрос: "А какой реальный IP-адрес у www.google.com?". Она получает ответ, например, 142.250.203.196.

    Блокировка: DPI сравнивает IP-адрес назначения (12.34.56.78) с реальным IP-адресом из DNS-запроса (142.250.203.196). Они не совпадают! Это явный и очень надежный признак того, что кто-то пытается замаскировать свой трафик под Google. Такое соединение немедленно блокируется или обрывается.

    Вот что случилось с вашим VPN. Старый метод маскировки, когда SNI и реальный IP-адрес сервера не совпадали, был раскрыт и теперь активно блокируется.
    Ответ написан
    13 комментариев
  • В чем разница символической ссылки и скопированного пути?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Простой пример. Скрипт ежесуточно создаёт папку с текущей датой в названии и делает на неё символическую ссылку /some/directory/today. В настройках программы /some/directory/today указана как папка для сохранения каких-то файлов. В результате файлы каждый день сохраняются в отдельную папку, а программе не надо менять настройку.
    Ответ написан
    Комментировать
  • Как сделать несколько виртуалок на одном сервере?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Использовать систему виртуализации. Есть два основных вида: те, которые работают на голом железе (т.е. без ОС) — тип 1; и те, которые работают в рамках ОС — тип 2. А ещё есть гибридные. Несколько примеров:
    • Тип 1: Xen, KVM, VMware ES, Microsoft Hyper-V
    • Тип 2: QEMU, VirtualBox, Parallels, VMware Workstation

    Вот тут на вики подробнее. Выбор конкретной системы виртуализации зависит от целей, ограничений и решаемых задач.
    Ответ написан
    2 комментария
  • Как сделать несколько виртуалок на одном сервере?

    @Drno
    Для начала Вам нужно нанять сисадмина.
    Он уже туда установит линукс и запустит qemu-kvm с нужными виртуалками, ну или Proxmox если ленивый

    А потом начнутся разные сложности, и сисаАдмин опять понадобится чтобы их решать...

    Только непонятно зачем так делить ресурсы, жестко, которые будут потом простаивать частично, когда давно есть кконтейнеризация - например LXC...
    Ответ написан
    2 комментария
  • Что будет если поставить 301 редирект в Яндексе таким образом?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Тут надо для себя логику и задачи определить: редиректы и переклейка – для чего? В индексе остаться подольше? Ссылки не потерять? Чуть дольше побегать от РКН? Трафик как можно быстрее вернуть?
    В любом варианте схема какая-то странная. Обычно под Гугл в цепочку обязательно встраивается 302 (временный) редирект, не позволяющий потерять хостовые. РКН-то не везде муравьишками управляет. В Яндекс 302 не нужен.
    Вот для примера реализация от одного из нехороших сайтов, которые блокают как по расписанию. Тут схема для гуглобота, для Яндекса 302 исключается. Обратите внимание на субдомен в редиректе, это часть процесса.
    А дальше – логика.
    68dfeb6d3cfe1978230435.jpeg
    Ответ написан
    1 комментарий
  • Влияет ли наличие целей в метрике на ранжирование?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Я бы сказал - да, влияет. Яндекс использует все источники данных для оценки. Свои "автоцели" они также не зря так навязчиво втыкали и активировали. С их помощью он пытается оценить микроконверсии и конверсии. Если сайт не продаёт, а должен бы - это, вероятно, не совсем хороший сайт.
    Во времена экспериментов с накруткой ПФ я это использовал, и это работало. Как минимум, это источник информации, что именно пытается оценить Яндекс и какие данные использует. Ликвидация автоцелей с нулевыми показателями и проработка реально коммерческих целей давала неплохой буст.
    Сейчас у них акцент сместился в сторону собственных задач (экосистема Яндекса, фиды товаров и услуг сразу на выдаче и т.п.), однако это не значит, что оценка конверсий потеряла значение - просто, возможно, приоритеты отдаются конверсиям по другим каналам.
    Как минимум, я бы снёс из метрики ненужные автоцели типа "просмотрел больше 1 страницы", "написал в ватсап" и т.п. - и те, что вообще не работают и показывают нулевую конверсию.
    Ответ написан
    Комментировать
  • Сильно ли влияет использование элементора на скорость загрузки сайта?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    1) Самописный сайт — это очень размытое и зависит от навыка самописца, можно собрать лютого франкенштейна, который будет ползать и просить его убить, а можно ультра-мега шустрый сайт, буквально залетающий в клиент.

    2) Элементор — мусор, без дикого кэширования и кучи работ по оптимизации и микрооптимизации и грамотной
    настройки сервера более-менее серьезный сайт на нём не собрать. Все хвалёные билдеры — фигня, из них наиболее легкий — Бобер (Beaver Builder), но это не значит, что он хороший. Все они — куча инлайна и лютая вложенность, огромное, адски огромное количество подтягивающихся на фронт ресурсов, для даже вывода контента, в отличии от Гутенберга, требует от движка закатать рукава, обновления Элементора — это отдельная песня и боль, билдеры дырявые, как гей-парад.
    Они имеют право на жизнь для всяких там личных бложиков, ну или в качестве инструмента прототипирования.

    3) Гутенберг - ему не может не хватать возможностей, если не хватает каких-то готовых блоков, полно плагинов даже в офф репе WP, которые добавляют их практически не ограниченное количество, и ничего не мешает написать свои блоки, такие как надо. вот пример довольно толковой либы под него https://wordpress.org/plugins/kadence-blocks/
    Он во всём лучше сторонних билдеров.
    Ответ написан
    1 комментарий
  • Какие домены YouTube для обхода?

    @rPman
    строчка условий из моего .pac файла автонастройки прокси для браузера
    dnsDomainIs(host,'.youtube.com')||dnsDomainIs(host,'.googlevideo.com')||dnsDomainIs(host,'.ggpht.com')||dnsDomainIs(host,'.ytimg.com')||host=='googleads.g.doubleclick.net'||host=='youtu.be'
    Ответ написан
    Комментировать