• FAILURE: Build failed with an exception. Как починить?

    Vamp
    @Vamp
    Почему вы публикуете текстовую информацию в виде скриншота?
  • Стоит ли фильтровать пароль на символы?

    Vamp
    @Vamp
    он не даст мне ничего кроме её названия для гуглёжки, не правда ли?

    Зависит от сканера. Могут и рекомендации по исправлению выдать. Но обычно и без дополнительных сведений понятно что делать.
  • Стоит ли фильтровать пароль на символы?

    Vamp
    @Vamp
    Владимир, чтобы уметь хорошо защищаться, нужно знать как нападать. В идеале - активно пытаться взломать своё приложение.

    Здесь не принято прямым текстом отвечать на вопросы "как взломать вот этот сайт?" и подобную ахинею. Но приветствуются стремления к самообразованию в сфере информационной безопасности.

    Начать можете со сканеров уязвимостей. Устанавливайте какой-нибудь сканер и направляйте его на свой сайт, смотрите что он смог накопать.

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

    Для общего развития рекомендую почитать OWASP. Там собраны популярные уязвимости, атаки и рекомендации по их предотвращению. Можно начать с Top Ten - десятки самых популярных.

    Так же для node.js существует awesome список. Там есть список рекомендуемых к прочтению статей, тулзы, плагины для IDE и многое другое, что помогает улучшить безопасность приложений на node.js.
  • Стоит ли фильтровать пароль на символы?

    Vamp
    @Vamp
    Тогда ограничения по символам с пароля можно убрать? Даже кавычки можно оставить?

    Владимир, верно.
  • Стоит ли фильтровать пароль на символы?

    Vamp
    @Vamp
    Не очень понятно какую проблему вы описываете. Конкретизируйте. Старайтесь не использовать общие слова типа "навредит приложению".
  • Отправка команд с php на ssh, почему не работает?

    Vamp
    @Vamp
    В начало скрипта добавьте строчки

    error_reporting(-1);
    ini_set('display_errors', 'on');


    Появляются ошибки какие-то?
  • Можно ли использовать Oracle database с Java 19?

    Vamp
    @Vamp
    Kavani, sql developer 19 версию не поддерживает. Тут пишут, что нужна 11 или 8 версия.
  • Можно ли использовать Oracle database с Java 19?

    Vamp
    @Vamp
    Kavani, так у вас проблема с sql developer, а не с oracle database?
  • Как в контейнере сделаться рутом?

    Vamp
    @Vamp
    сергей кузьмин, никто его не обрезает. Да, у него нет конкретно имени root, но это не значит, что он перестал из-за этого существовать.

    Рассматривайте ситуацию со стороны безопасности - если удалось похачить приложение в контейнере и обнаружить, скажем, RCE, то грош цена этой поистине эпичной дыре если кроме самого приложения даже нечего запустить в этом контейнере. Но если в контейнере есть bash, пользователи, ещё какие-то бинарники (особенно curl/wget), то ценность уязвимости значительно возрастает.
  • Как в контейнере сделаться рутом?

    Vamp
    @Vamp
    сергей кузьмин, по философии докера работать в контейнере должно только приложение. Вам там работать не нужно. Поэтому чем меньше в контейнере мусора (файлов, не нужных для нормальной работы приложения), тем лучше (меньше поверхность атаки, меньший вес образа).
  • Как в контейнере сделаться рутом?

    Vamp
    @Vamp
    сергей кузьмин, запись в /etc/passwd необязательна. Можно указывать пользователей не только по имени, но ещё и по uid: USER 0 в Dockerfile или docker exec -ti --user 0 bfad81cba22b /bin/sh
  • Разница между L2 и L3 vpn разница?

    Vamp
    @Vamp
    И чем тогда уровни различаются, по вашему мнению?

    Griboks, ничем :)
    OSI - это пережиток прошлого. Международная организация ISO придумала эту модель чтобы по ней делать свои сетевые стандарты. Но ISO проиграла войну более простому стеку TCP/IP. OSI модели при этом удалось выжить, хоть реальность она уже давно не отражает. Просто людям надо было как-то классифицировать протоколы, а более подходящей модели не нашлось. TLS, например, вообще ни в какой уровень по OSI не укладывается.

    Инкапсуляция рулит. Благодаря ей пакет какого-либо протокола не интересуется что конкретно он перевозит в своём пэйлоаде, а так же ему не интересно на каком протоколе он едет верхом. Поэтому и возможны прыжки между уровнями. Но и с инкапсуляцией не всё так просто. Например, в заголовке протокола IPv4 существует поле Protocol, в котором указывается какой протокол верхнего уровня находится в пэйлоаде. Или упоминавшийся выше TLS. У него есть расширение ALPN, в котором указывается какая версия http протокола у TLS там внутри. Такая вот "протёкшая" инкапсуляция.
  • Разница между L2 и L3 vpn разница?

    Vamp
    @Vamp
    Griboks, ну я понял. Весь ваш тезис сводится к "нельзя, но если очень хочется, то можно". То есть вы не знаете точный ответ и не можете внятно объяснить.

    Поскольку L3 не ниже L3, то L3 нельзя инкапсулировать в L3

    Вполне можно.

    Поверх L2 туннеля можно использовать любой L3 протокол, а поверх L3 - нельзя.

    Тоже можно.

    Но если вы хотите конкретный ответ, то передавать tcp внутри udp нельзя.

    UDP в TCP я ещё могу понять, но TCP в UDP лишено всякого смысла. Тем не менее, при большом желании и это возможно, нужно только реализовать свой LSP или TUN драйвер для ядра линукса.

    Vamp, не нужно ничего складывать, нужно прочитать ссылку на OSI.

    Хочу привести цитату из статьи в википедии, на которую вы ссылаетесь и, похоже, сами ещё не читали:
    Любой протокол модели OSI должен взаимодействовать либо с протоколами своего уровня, либо с протоколами на единицу выше и/или ниже своего уровня.
  • Разница между L2 и L3 vpn разница?

    Vamp
    @Vamp
    Griboks, вы как-то путано отвечаете - то "нельзя", то "можно". Складывается впечатление, что вы не очень разбираетесь в теме.
  • Разница между L2 и L3 vpn разница?

    Vamp
    @Vamp
    Griboks, так значит всё-таки можно?
  • Что означает синтаксис dockerfile (php-fpm)?

    Vamp
    @Vamp
    а почему у мня такой вывод (отличается от вашего) (FROM php:7.4-fpm-alpine3.16)

    Потому что apk info не лезет в интернет, а смотрит информацию в кешированном индексе. Вы во всех командах apk прописываете флаг --no-cache, поэтому индекса у вас нет, из-за чего команда и валится с ошибкой.

    в какой момент и для чего нам нужно libmcrypt (без дев)?

    Нужно в момент запуска php-fpm. Когда php загружает модули, автоматически загружаются и системные библиотеки из so файлов.

    если же apk add libmcrypt-dev и потом НЕ удалять -dev пакет - все работает (подозревая что он( libmcrypt-dev) скачивает как зависимость libmcrypt (поэтому, как вы и пояснили, при удалении -dev из папки .so пропадает), а тут НЕ удаляем -dev поэтому и простой пакет сохраняется

    Всё правильно, так как при установке сразу двух пакетов apk add libmcrypt libmcrypt-dev, пакет libmcrypt будет промаркирован пакетным менеджером apk как "установленный вручную" и поэтому не будет удаляться автоматически при удалении libmcrypt-dev.

    но я-то всегда думал что libmcrypt-dev (вместе с g++ gcc make ....) компилируют мне этот .so файлик и мне после этого не нужен пакет без -dev суффикса (все ведь у меня в папке so лежит и именно он "работает"), но, когда ковыряюсь - понимаю что все не так, файлик so пропадет, нужена библиотека без -dev, но в какой момент и для чего....

    Ещё раз для закрепления материала. Пакет libmcrypt содержит скомпилированную динамическую библиотеку, которая распаковывается по пути /usr/lib/libmcrypt.so.4. Пакет libmcrypt-dev содержит в себе сишный заголовочный файл, который нужен для компиляции php модуля mcrypt. После компиляции php модуля mcrypt этот сишный заголовочный файл больше не нужен и его следует удалить. У скомпилированного php модуля mcrypt образуется зависимость от файла /usr/lib/libmcrypt.so.4:

    /var/www/html # ldd /usr/local/lib/php/extensions/no-debug-non-zts-20190902/mcrypt.so
    	/lib/ld-musl-x86_64.so.1 (0x7f07e7381000)
    	libmcrypt.so.4 => /usr/lib/libmcrypt.so.4 (0x7f07e7346000) <--------- вот она
    	libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f07e7381000)
    	...

    Так как пакет libmcrypt неявно устанавливается вместе с libmcrypt-dev, то при удалении пакета libmcrypt-dev, пакет libmcrypt так же будет неявно удалён. Это поведение не уникальное для альпиновского пакетного менеджера. Так действуют и apt, и yum, и прочие менеджеры пакетов из других дистрибутивов. Так как libmcrypt нужен для работы php модуля mcrypt, то чтобы пакет libmcrypt неявно не удалялся вместе с пакетом libmcrypt-dev, пакет libmcrypt необходимо устанавливать явно. Рецепт успеха выглядит так:

    apk add libmcrypt libmcrypt-dev
    pecl install mcrypt
    docker-php-ext-enable mcrypt
    apk del libmcrypt-dev