• Что это такое и как защититься?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    По двору прошелся жулик и попытался хакнуть эксплойтом для "майбаха" (условно) все тачки в вашем дворе. Майбахов не нашлось, этот жулик пошел дальше и забыл уже про ваш дворик.

    Надо ли защищаться от атаки, не релевантной вашему сетапу? Не надо.
    Надо ли делать выводы об уязвимости того или иного оборудования? Надо.
    Надо ли проверять свои конфигурации на эксплойты? Надо.
    Надо ли реагировать на всякую нерелевантную хрень в логах с ошибками порядка 400? Не надо.
    Надо ли позаботиться об оркестрации быстрого развёртывания ваших серверов на случай взломов или проблем с железом? Конечно надо!

    Вообще, если ваш сетап на виртуальных машинах в повторяемой среде и с декларативной конфигурацией вроде кубера или докера, то вы легче сможете пережить всякие такие факапы.
    Схема такая.
    Есть признаки взлома - бэкап логов, снапшот базы, бэкап стораджа, остановка сервисов (если позволяет продакшн), анализ атаки и последствий. Устраняем уязвимость по вектору атаки (гугление по логам и курение тредов), правим конфиги развёртывания и запускаем прод. Потом долго и тщательно разбираемся по логам, снапшотам и бэкапам что затронуто. Делаем тестовый чистый сетап по старой конфигурации и сравниваем пофайлово с атакованной системой, выясняем в какие места вмешались злодеи. Дифаем базу и смотрим на подозрительные различия. Делаем выводы, объявляем об утекших данных, если есть такие признаки (чтобы не подставлять пользователей), принимаем превентивные меры против похожих векторов атак.

    Итого, залог успеха - это хранение конфигураций в гит-репозитории, своевременные бэкапы, хранение бэкапов на отдельных изолированных стораджах, оркестрация и автоматизация развертывания, подробное эшелонирование логирование с бэкапами логов, смоук тесты на нестандартную активность в БД, по сетевым интерфейсам, трафику, процессору, памяти, файловым системам, логам...

    Это взгляд дилетанта по безопасности, если чего пропустил -- поправьте. Если где не прав -- расскажите.
    Ответ написан
    3 комментария
  • Какие ведутся документы при разработке ПО?

    nikitanaz
    @nikitanaz
    UX Lead and DesignOps @EPAM
    Доброго пожаловать в продакт менеджемент!
    Здесь можно хорошо закопаться, почитать и понять куда гуглить:
    https://www.productmap.pro/
    Ответ написан
    1 комментарий
  • Как сделать асинхронность в процессах?

    @Everything_is_bad
    Просто раздели это на два сервиса/программы/скрипта, а "класс который будет запускаться раз в 5 минут", звучит как скрипт запущенный через cron/systemd timer

    Хотя асинхронность позволяет делать это всё в одном event loop'е, главное не блокировать его.
    async def background_task():
        while True:
            await run_второй()
            await asyncio.sleep(5_минут)
    
    # а в самом боте
    asyncio.create_task(background_task())
    Ответ написан
    3 комментария
  • Где найти бесплатный работающий хостинг для одностраничника?

    vabka
    @vabka
    Токсичный шарпист
    Если чисто статику, то я такое в Яндекс облаке через object storage и cloud CDN держу.

    Без трафика или с небольшим трафиком выходит толи бесплатно, толи меньше одной копейки в месяц.
    А так как я там ещё и DNS держу, то ещё и сертификаты от letsencrypt бесплатно и автоматически продлеваются

    PS: DNS 30р в месяц обходится
    Ответ написан
    Комментировать
  • Почему максимум 100Мб/с на Realtek GbE Controller?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Скорее всего у вас кабель включен в 100Мбс порт коммутатора, и сам коммутатор 100M, а не 1G. Драйверы скорее всего нипричем, во всех современных ОС он есть. Еще может быть кабель в 4 жилы, а не в 8 жил.
    Ответ написан
    1 комментарий
  • Как ввести большое число?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    input возвращает str и, если указать int(input()) и ввести 100, то будет результат нормальным, а вы указываете 10000000 1 - это уже строка, ведь в python число может быть только: "100..." или как float "1000.1". Можно использовать следующий код:

    num = input("Enter a number > ")
    # проверка на число
    if not num.isdigit():
       return False
    
    # Дальше можно сделать
    num = int(num) # и ошибок не будет.
    Ответ написан
    Комментировать
  • Как реализовать поиск в тг боте по словам из самого кода?

    Vindicar
    @Vindicar
    RTFM!
    Вместо того, чтобы хардкодить названия, сделай какую-то коллекцию с ними. Не обязательно БД, хотя бы текстовый файл, который читается в список. Тогда можно будет перебирать элементы списка и при создании кнопок, и при поиске.
    Ответ написан
    Комментировать
  • Как решить проблему когда ВК бот флудит после приписки else?

    Zagir-vip
    @Zagir-vip
    Web dev, Game dev, app dev, Разработчик на Python!
    А код мы гадать будем ?
    Ответ написан
    2 комментария