• Не работает vendor/autoload.php как исправить?

    @HellWalk
    На хостинге компосер не установлен.

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

    Соответственно или устанавливать composer на хостинге и делать composer install, или, если это невозможно - можно (костыльным решением) руками загрузить туда папку vendor. Или (опять же костыльный вариант) убрать папку vendor из исключений git-а, и пусть она заливается на хостинг вместе с остальным проектом.
    Ответ написан
    9 комментариев
  • Как продублировать электронную почту?

    @q2digger
    никого не трогаю, починяю примус
    Ответ написан
    Комментировать
  • Как postfix не попадает в проблему релеить сам на себя (или попадает)?

    Для вторичных релеев принято либо прописывать домены как локальные (если доставка идет прямо на них локальным транспортом) или прописывать транспорт по обслуживаемым доменам на основной хост, если они именно релеи, см man transport и relay_domains. То как именно оперирует вторичный релей RFC не регламентирует, он регламентирует только порядок доставки при отпраке.
    Ответ написан
    Комментировать
  • Можно ли в Linux делегировать права на создание пользователей?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Можно добавить утилиту в sudoers, тогда он будет писать sudo useradd и пароль не надо будет вводить. Но тут уже вопрос безопасности, в такой ситуации пользователь сможет добавить пользователя с правами рута, перелогиниться в него и делать что хочет.
    Ответ написан
    Комментировать
  • Как реализовать поиск похожих изображений?

    @rPman
    на картинке-запросе изображена девушка в юбке. Программа в этом случае должна выдать фотографии девушек в юбке
    очевидно что задача в поиске именно девушек в юбке или универсальнее?
    пример, как алгоритм должен понять что пользователь ищет девушек в юбке, а не столы, рядом с которыми стоит девушка?

    Гугли задачу - image annotation
    с помощью нейронных сетей (именно эта технология сейчас бурно развивается в разрезе работы с фото и изображениями)

    добавление в поисковую базу изображения должно начинаться с его анализа и получения списка тегов, объектов, которые нейронная сеть может на нем найти, и уже после ищешь по этим ключевым словам
    Ответ написан
  • Как лучше всего организовать VPN с юридической точки зрения?

    @bahusvip
    дисклеймер: я сотрудник Протона.
    - Что лучше сторонний VPN-провайдер (NordVpn, ProtonVpn etc.) или свой VPS и OpenVPN на нем?
    Главный плюс провайдера - он не хранит логи. Если у вас свой VPS, то логи может хранить хостер и раскрыть по требованию властей, которым он подчиняется. Минус - или платный тариф дороже VPS, или бесплатный с ограничениями. И главный минус - вы должны верить провайдеру, что логи он не хранит.
    Ответ написан
    6 комментариев
  • Как ограничить полномочия скрипту на запись (легковесный chroot)?

    @rPman
    запускать скрипт под специально созданным пользователем backup и выдать права на каталог с бакапами только там где это допустимо
    Ответ написан
    Комментировать
  • Поддельное email-письмо на доменную почту при настроенных SPF, DKIM и DMARC - как же так?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    То что Вы настроили dkim, spf, dmarc и ptr это прекрасно (кстати это далеко не всё - крайне желательно ещё и mta-sts и неплохо-бы tlsa dane озаботиться) - но какое это отношение имеет к тому что со всей этой верификацией делает почтовый сервис ПРИНИМАЮЩЕЙ стороны ?

    Если у вашего клиента за которых Вы беспокоитесь настроен почтовый сервис на "принимать всё" то и все фишинговые письма якобы от Вас он получит. Ну значит он ССЗБ. Вы то сделали что могли.

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

    P.S.

    То что Вы написали в dmarc "карантин" это рекомендация сервису принимающей стороны - он может её исполнить а может и подтереться ибо он не обязан ваши хотелки учитывать !

    Вот Вам мой пример ( у меня в dmarc вообще p=reject прописано). Как-то раз при обновлении сервера dkim слетел напрочь, а заранее запланированная рассылка ушла. И что ? В gmail письма успешно попали у всех клиентов во "Входящие", хотя в отчёте dmarc что gmail прислал указано что dkim отсутствует. Просто gmail решает что с письмом делать исходя из собственных правил и мой p=reject ему до лампочки :)
    Ответ написан
    Комментировать
  • Как сделать быстрый веб-сервер для статики но с аутентификацией?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Просто настроить авторизацию oauth на Nginx и всё.
    Ответ написан
    Комментировать
  • Почему Front end разработчику платят так же, а то и больше, чем Full-stack разработчику?

    @unkwua
    Не в обиду автору, но сколько я знаю fullstack разработчиков, которые считают что круты во FE, но пишут лютый говнокод в стиле бекенда, который потом невозможно поддерживать и нужно разгребать. Поэтому ценятся чистые фронтэндщики которые пишут фронтэнд ориентированный код. Это раз. Во вторых инфляция за последние два года , и мир движется вперёд , ЗП тоже , думаю если посмотрите вакансии удивитесь насколько выросли ЗП.
    Ответ написан
    1 комментарий
  • Почему Front end разработчику платят так же, а то и больше, чем Full-stack разработчику?

    YuStep
    @YuStep
    Эмоциональный интеллект? Понимать когда, кому и где что сказать это как раз про это. Не бояться спрашивать.
    Например, когда она спросила про generics in TS, конечно, она умеет гуглить, но люди проявляются в таких ситуациях. Можно было с энтузиазмом все рассказать и предложить свою помощь в этом, потом глядишь она бы вас тоже в нужное время referred куда-то. А так у неё осадочек останется, что вы с высока на неё смотрели и она про вас и не вспомнит, когда услышит о хорошей позиции. Networking и emotional intelligence прокачивайте. На одних технических знаниях сейчас не уедешь.
    Ответ написан
    Комментировать
  • Как сделать sleep на N секунд либо до прихода HTTP запроса (асинхронный cron с http сервером)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если уж клиент всё равно постоянно висит в памяти, то используйте вебсокеты. Тогда сервер сможет моментально извещать клиентов о появлении нового задания.
    Ответ написан
    4 комментария
  • Почему нельзя хранить важные данные в localStorage и вообще, JWT чем-то опаснее cookie?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Важные данные обычно никогда не хранятся на клиенте, они передаются, используются и удаляются.

    Есть ли какие-то ситуации, когда использование httpOnly сессионной куки нас защищает, а вот использование localStorage и sessionStorage уязвимо?

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

    Теперь про токены. Токены в теории лучше всего держать не в localStorage, а в sessionStorage. Это хранилище переживает перезагрузки страниц и не расшарено между табами. Т.е. при открытии того же самого адреса в новом табе будет созданая новая сессия. Хранилище очищается при закрытии браузера и таба. Но это жутко неудобно, каждый раз логиниться. Поэтому здравая логика говорит об использовании localStorage, хотя если вы совсем отбитый, то можете хранить токен в сессионой куке.

    Если вы прочли те статьи внимательно, то можно понять, что преимущества сессионных кук нивелируются неудобством их использования.
    JWT Токены предназначены для микросервисной архитектуры. Т.е. у вас есть некоторый центр аутентификации, который выдает вам токен. Токен этот подписан относительно стойкой криптографией и постоянно ротируется.
    Этот токен передается другим микросервисам, которые могут его верифицировать через публичные ключи (JWKS).
    Т.е. если вы хотите, вы можете строить свои сервисы так, что они доверяют не только вашему центру аутентификации, но и гуглу с амазоном через OpenID. Есть ситуации, например когда вы хотите разрешить доступ к сервису сотрудникам другой компании. Например, когда такая компания огромна (десятки тысяч сотрудников). Они аутенфицируются у себя, а вы проверяете, что токен выпущен сервисом данной компании. Это не так сложно реализовать.
    Реализация авторизации лежит на плечах каждого микросервиса и напрямую завязана на бизнес-логику. Как правило это некий внутренний микросервис, который интегрирован c middleware микросервиса.
    Ответ написан
    5 комментариев
  • Может ли apache/nginx выбирать из множества сертификатов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В Nginx можно сделать default сервер (который catch-all), а начиная с версии 1.15.9 можно указывать переменные ($ssl_server_name) в пути к файлу сертификата.
    Ответ написан
    1 комментарий
  • Как по сети оповестить одного из сотен-тысяч клиентов?

    vistoyn
    @vistoyn
    программист
    RabbitMQ не подойдет. Это для микросервисной архитектуры.
    То что ты говоришь, называется web push уведомлениями.
    Почитай алгоритм как они работают, и сделай также.
    Вроде как есть https://gotify.net/ и клиент под него

    Проблема с вебсокетами в том, что на каждого подключённого клиента, на сервере будет выделяться память. И если много клиентов одновременно будут держать открытые соединения, то может память сервера кончится, и надо будет масштабировать сервер.

    Как вариант можно юзать UDP протокол. Там не тратится память. Но надо будет решить проблему с NAT. NAT на клиенте можно обойти через проброс портов на роутере. Есть даже автоматический проброс портов через UPnP. Но это не везде будет работать. Где не работает, там вебсокеты.

    Как идея второй вариант:
    Если обновления происходят раз в час, или раз в неделю, и задержка в 5-10 минут не критична, то можно следующее решение. Клиент по таймауту раз в несколько минут отправляет post запрос (чтобы не кэшировался), где будет возвращен timestamp с последней новостью. Можно даже создать 100к txt статических файлов для каждого клиента и раздавать их через nginx или CDN. А для того чтобы "пнуть клиента", достаточно в txt файл записать новый timestamp.
    Ответ написан
    2 комментария
  • Куда делось место в пустом каталоге и как его увидеть?

    Lynn
    @Lynn
    nginx, js, css
    Судя по строке
    drwxr-xr-x 1 xenon xenon 2813952 Feb 11 20:49 .
    в этом каталоге в какой-то момент было очень много (тысячи) файлов.

    В ext2/3/4 каталог это такой «специальный файл» в котором записаны имена (и ещё что-то) содержащихся в нём файлов. И если их много, то и сам каталог будет большим. Но при этом механизма уменьшения размера каталога не предусмотрено.
    Стандартный вариант, скопировать все файлы из него в новый каталог, удалить этот и переместить новый на его место.
    Ответ написан
    2 комментария
  • Можно ли получить URL отправителя GET-запроса через PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Поле Referer в заголовке запроса.
    Клиент может как вообще не передавать это поле, так и передать любое произвольное значение.
    Ответ написан
    3 комментария
  • Купил ssl сертификат, но нет crt?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Внимание! Изменился адрес почты!
    Купил ssl сертификат

    Не, нифига. Факт уплаты денег не означает факт поставки товара :) CSR - файл запроса на сертификат, KEY - ключ сертификата. Теперь CSR нужно отправить в тот CA, у которого купили - в ответ придет CRT.
    Ответ написан
    Комментировать
  • Купил ssl сертификат, но нет crt?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Похоже, ещё пока ничего вы не купили. Для начала - и ключ, и запрос на подпись вы генерируете сами, на доверенном устройстве. Затем CSR отправляете продавцу воздуха в удостоверующий центр, который из него делает валидный сертификат.
    Ответ написан
    Комментировать
  • Как правильно организовать адреса-методы REST/HTTP для типового веб-приложения?

    petermzg
    @petermzg
    Самый лучший программист
    GET /staff - список сотрудников, но скорее общий, а не отдела.
    Для отдела лучше GET /department/< name or ID >/staff
    POST /staff - добавление нового сотрудника
    PUT /staff/< id > - изменение всех данных по сотруднику
    PATCH /staff/< id > - частичное изменение данных по сотруднику
    DELETE /staff/< id > - удаление сотрудника

    Для груповых действий над сорудниками можно
    POST /staff/actions c телом запроса { "action": "raise_salary", "value": "20%"}
    либо POST /staff/< action >, то есть POST /staff/raise_salary с телом {"value": "20%"}
    Ответ написан
    Комментировать