Задать вопрос
  • Является ли python-shell безопасным решением для запуска untrusted-кода на Node.js сервере?

    Vindicar
    @Vindicar
    RTFM!
    Не думаю, он создаёт дочерний процесс от ноды, но в доках не написано, что этому процессу задаются особые права - значит, права будут как у ноды.

    Я бы сделал минимум три уровня защиты:
    1. Полученный от пользователя скрипт выполняется не напрямую, а в скрипте-обёртке. Обёртка подписывается на события аудита Питона, и мониторит событие импорта. При попытке импорта модуля не из белого списка сигнализируем родительскому процессу и вызываем заранее сохранённую os._exit(), чтобы немедленно прибить интерпретатор. Также на обёртку можно возложить собственно прогон тестов.
    2. Скрипт-обёртка должен выполняться от nobody:nobody с правами только на временную директорию, в которой лежит сам скрипт и его виртуальное окружение. Директория должна пересоздаваться заново при каждом запуске скрипта. Может иметь смысл оформить выполнение обёртки внутри chroot.
    3. Выполнение должно происходить внутри контейнера, который должен перезапускаться время от времени (не обязательно при каждом запуске скрипта, можно раз в сутки или около того). Передача скрипта внутрь контейнер - через сетевой сервис, хотя можно и через примонтированную директорию. Внутри контейнера сервис сам создаёт временную директорию с окружением, переносит скрипт в эту директорию (с переименованием в заранее известное имя - user_script.py или подобное) и только тогда запускает обёртку.

    В этом случае атакующему нужно будет сначала обойти аудит импортов, потом сделать эскалацию привилегий, потом выбраться из-под chroot. И даже если он закрепится в контейнере, контейнер периодически перезапускается, так что малварь будет снесена.
    Ответ написан
    3 комментария
  • Как реализовать возможность запускать пользовательский код на сервере и отдавать результат?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Проще всего поискать готовые решения и либо использовать их либо посмотреть на реализацию и сделать по аналогии. А так - использовать Docker или любой аналог. Ставим на сервер докер, настраиваем отдельные контейнеры для каждого ЯП с максимальной изоляцией от ОС и хостовой ОС (например ограничить интернет, запретить запуск системных приложений и прочее). Полученный от пользователя код передаем в контейнер, например как файл в примонтированном каталоге, запускаем скрипт для выполнения кода, сохраняем результат и возвращаем его пользователю.
    Ответ написан
    1 комментарий
  • Сколько просить времени у работодателя на освоение докера?

    Ni55aN
    @Ni55aN
    Установка ОСи и докера занимает 2-3 часа, если не возникнет никаких проблем.

    Развертывание контейнеров может занять как от пары часов, так и до недели, так как неизвестно насколько кривые там конфигурации.
    В идеале, все это должно запускаться одной командой (скорее у них там Docker Compose), все начальные данные для разработки должны добавиться автоматически через миграции, и само собой внятный Readme.
    В худшем случае придется запускать путем ручного выполнения десятка шагов из Ридми, которое может быть устаревшим, поэтому будете получать десятки ошибок, которые кто-то когда-то уже фиксил но забыл исправить Ридми
    Ответ написан
    Комментировать
  • Сколько просить времени у работодателя на освоение докера?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Если вам выгонят из-за того что linux и докер ставили долго, даже хорошо. От таких работодателей нужно бежать. Если не успеваете, так и пишите - нужно больше времени. Если потратите на это не неделю, это не страшно
    Ответ написан
    Комментировать
  • Безопасно ли регистрировать только словесный товарный знак?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Можно. Даже если кто-то зарегистрирует картинку, вы её сможете изменить и зарегистрировать другую (та же "пятерочка" и холдинг "Х5" уже делали это. Ребрендинг, рано или поздно случается, а вот названия остаются.
    Ответ написан
    2 комментария
  • Как правильно подключить локальные шрифты в vue?

    delphinpro
    @delphinpro
    frontend developer
    в каждый url путь подставьте
    сейчас вы только eot подключили

    И уж, коли на Vue пилите, а значит более или менее современные браузеры, то подключайте только woff и woff2 — покроют всё.

    @font-face {
      font-family: 'Geometria';
      src: local('Geometria Thin'), local('Geometria-Thin'),
        url('~@/assets/fonts/geometria/Geometria-Thin.woff2') format('woff2'),
        url('~@/assets/fonts/geometria/Geometria-Thin.woff') format('woff');
      font-weight: 100;
      font-style: normal;
    }
    Ответ написан
    Комментировать
  • Как внедрить Vue в существующий Yii-проект?

    slo_nik
    @slo_nik Куратор тега Yii
    Доброе утро.
    Вот есть расширение для vue.
    Статья ещё.
    Ответ написан
    1 комментарий
  • Можно ли в WP настроить автоматическое добавление категории к кастомной записи (при создании записи)?

    @MrTimon
    Есть екшен хук wp_insert_post. В ньом можете проверить добавился новый пост или просто выполнился апдейт. Ну и добавить к посту все что угодно.
    Ответ написан
    4 комментария
  • Какой выбрать материал (книга/видеокурс) для неповерхностного обучения WordPress?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    Изучи эти 3 ссылки https://pastebin.com/KzQUbGAU
    p.s. разместил так - потому что глупый тостер не давал из-за каких-то стоп слов отправить сообщение
    Ответ написан
    Комментировать